[PYTHON] Enregistrez ce que vous avez appris au cours des quatre mois de formation d'ingénieur logiciel en interne (* actuellement en cours)

introduction

Ravi de vous rencontrer, je m'appelle Maki et je vise à devenir un ingénieur back-end de mon Alafor inexpérimenté.

Après avoir obtenu mon diplôme d'une école supérieure de sciences, j'ai travaillé comme technicien chez un grand fabricant pendant 12 ans en tant que nouveau diplômé. Il a été décidé que nous changerons de poste en interne en ingénieur logiciel grâce à un recrutement interne.

Je prévois de commencer à travailler après avoir étudié pendant 4 mois à partir de novembre. J'ai décidé de publier mon premier article sur Qiita cette fois parce que je voulais laisser ce que j'ai appris ici comme mémo pour moi-même.

L'oncle d'Alafor n'a même pas compris la signification de la notation de démarque jusqu'à ce qu'il ait écrit ceci, J'espère que cela sera utile pour les personnes du même groupe d'âge et ceux qui souhaitent changer d'emploi en tant qu'ingénieurs issus de personnes inexpérimentées.

(Les articles seront mis à jour tous les 4 mois)

Programme de formation

Au cours du premier mois, vous apprendrez ce qui suit dans une conférence en classe. Le matériel pédagogique WBT provient de Net Learning.

■ WBT: Première technologie de l'information (3 jours) · Qu'est-ce qu'un ordinateur? ・ Théorie de base de l'information ・ Connaissance de base des algorithmes ・ Connaissance de base du matériel ・ Connaissance de base des logiciels ・ Connaissance de base du réseau ・ Connaissance de base de la base de données ・ Flux de base de la construction / exploitation / maintenance du système d'information

■ WBT: programmation en langage C Étape 1 (3 jours) ・ Introduction au langage C ・ Différents types de données de base ・ Constante (littérale) ・ Expressions et opérateurs ・ Flux de contrôle ・ Entrée / sortie de fichier · Fonctions et programmation structurée

■ WBT: programmation en langage C Step2 (3 jours) ・ Opération de bit et macro ・ Introduction aux pointeurs ・ Différents types de données et pointeurs -Gestion dynamique de la mémoire ・ Mécanisme de compilation et bibliothèque ・ Bibliothèque standard ANSI ・ Entrée / sortie de bas niveau ·Structure de données ·algorithme

■ Introduction à l'algorithme (3 jours) Apprenez ce qui suit en utilisant le langage Python ・ Concept de base de l'algorithme ・ Concept pour créer un algorithme -Construire un programme simple en utilisant le langage Python

■ Introduction au processus de développement (1 jour) Apprenez les caractéristiques du type de cascade et du type agile

■ Introduction à la conception d'analyse structurée (1 jour) ・ Notation des dessins de conception typiques (diagramme de contexte, DFD, organigramme) ・ Coagulation / couplage (une des mesures de bonne / mauvaise division du module)

■ Introduction à la technologie de sécurité (1 jour) ・ Concept et atteinte à la sécurité, nécessité de la sécurité du produit ・ Lois et règlements de sécurité ・ Vue d'ensemble du processus de développement sécurisé

■ Introduction à la technologie réseau (1 jour) -Type de réseau, 7 couches, réseau TCP / IP ・ Mécanisme de réseau sans fil (Wi-Fi, Bluetooth, radio publique, etc.) ・ Mécanisme de connexion Web (HTTP, etc.), mécanisme de transmission d'image / vidéo ・ Pratique (pour pouvoir connecter votre PC Linux au réseau et rechercher sur Google)

Ceci est la conférence. Du deuxième mois à 3 mois Les exercices et le développement de projets suivants seront menés dans une équipe solide.

■ Exercice d'implémentation du langage C (9e) Approfondissez votre compréhension du langage C en résolvant divers algorithmes en langage C. Apprenez également à utiliser eclipse, redmine et Subversion. ・ Gestion des tâches, gestion des versions · Environnement de développement intégré -Division de module, fichier d'en-tête, faire ・ Problème de confirmation de grammaire du langage C ・ Problème d'algorithme de base ・ Problème de structure de données

■ Projet de développement Exercice 1 (15e) De la compréhension des problèmes de développement / analyse des exigences au développement de prototypes

■ Projet de développement, exercice 2 (14e) De la définition des besoins à la livraison

■ Projet de développement Exercice 3 (12e) Apprenez les bases du micrologiciel à l'aide d'une carte équipée d'un micro-ordinateur (RX) ・ Langage C intégré ・ Allocation de mémoire ・ Programmation de démarrage ・ Contrôle d'entrée / sortie ・ Lien entre le langage C et le langage d'assemblage ・ Programme d'interruption ・ Réglage du programme ・ Détection de poussée vers le bas ・ Minuterie ・ Convertisseur AD ・ Interface de communication série · Éclairage dynamique ・ Balayage des clés ・ Moteur à impulsions ・ DMAC <OS en temps réel> ・ Qu'est-ce qu'un système d'exploitation en temps réel? ・ Mécanisme du système d'exploitation en temps réel ・ Fonctions OS en temps réel ・ Équipé d'un système d'exploitation en temps réel ・ Conception de tâches ・ Points d'implémentation ・ Vérification logicielle du système multi-tâches

Ce qui précède est le programme.

WBT: Première technologie de l'information (3e)

Ce contenu recoupe les bases de l'informatique que j'étudie depuis un certain temps à «Kitami-style Illustration IT School Basic Information Engineer».

・ «Ordinateur» est un terme général pour les machines qui traitent les signaux électriques et effectuent des calculs. ・ «IT (= technologie de l'information)» est une technologie qui traite les informations par un ordinateur et des équipements associés. ・ Les ordinateurs sont utilisés non seulement dans les soi-disant PC, mais également dans des endroits invisibles tels que les automobiles et les appareils ménagers (il y en a plutôt plus). -Les ordinateurs peuvent être divisés en deux types, "serveur" et "client" en termes d'utilisation. Le serveur est un ordinateur qui fournit divers services via le réseau tels que la connexion à Internet et la recherche dans la base de données (par exemple, un espace, un poste de travail), et le client est un ordinateur qui demande des services et un traitement au serveur (par exemple, PC, smartphone).

-Les informations manipulées par l'ordinateur sont "numériques" (une méthode d'expression des informations en nombres discrets). -Dans les informations numériques, la quantité d'informations alternatives "non" ou "oui" est définie comme une quantité d'informations, et cela s'appelle un bit. Une unité dans laquelle huit de ceux-ci (faciles à comprendre si vous imaginez une ampoule) sont alignés est appelée 1 octet. ・ 1 Ko correspond exactement à 2 à la 10e puissance = 1024 octets. 1 Mo correspond à 1024 Ko, 1 Go correspond à 1024 Mo, 1 To correspond à 1024 Go -La méthode d'expression des nombres appropriée pour gérer "0" et "1" est "nombre binaire" -Il existe un "code 1 octet" (code ASCII, code JIS (JIS X 0201)) et un "code 2 octets" (code JIS (JIS X 0208) Unicode) comme mécanisme d'affichage des caractères. Au Japon, le kanji est utilisé, donc les deux sont utilisés ensemble. -Lorsque deux valeurs de 0 ou 1 sont données, l'opération qui aboutit à une valeur de 0 (faux) ou 1 (vrai) est appelée une opération logique. Une expression logique (par exemple, produit logique, somme logique) qui exprime une opération logique comme une formule mathématique

-Pour qu'un ordinateur traite les informations, les informations doivent d'abord être numérisées. De plus, vous devez utiliser des "instructions". Par conséquent, créez un «programme» qui organise plusieurs instructions et exécute un processus cohérent. -Le mot pour écrire un programme est "langage de programme", et écrire un programme en utilisant le langage de programme est appelé "programmation". -Les types de langages de programme peuvent être largement divisés en «langages de programme à usage général» et «langages de script» (HTML, JavaScript, XML, etc.). -Les langages de programme à usage général sont des "langages de bas niveau" (langages machine, langages d'assemblage. Les langages machine peuvent être directement interprétés et exécutés par le CPU, mais sont difficiles à comprendre pour les humains. Par conséquent, écrivez les programmes avec des mots faciles à comprendre pour les humains. A été conçu pour remplacer par le langage machine, les premiers étant des langages d'assemblage) et des langages de haut niveau (Fortran, COBOL, BASIC, C, Java, etc.) ・ Les langages de haut niveau ont été développés en tant que langages plus proches des langages humains et des modes de pensée que des langages d'assemblage. -Fortran (1956), COBOL (1959), BASIC (1960), langage C (1972), Java (1995) ・ Qu'est-ce qu'un algorithme? Pour créer un programme, analyser le problème et le contenu de l'œuvre, et l'ordinateur décide de la procédure pour le traiter. Cette procédure de traitement. -L'algorithme et le programme ne font qu'un. Les conditions pour un bon algorithme sont correctes, faciles à comprendre, générales et extensibles et efficaces. -Lors de l'expression programmatique de l'algorithme, la structure des données (quel type de forme les données à traiter peuvent être) est également importante. Algorithme + structure de données = programme (par exemple tableau, liste, arborescence, pile, file d'attente)

-Le logiciel comprend le «logiciel système» (contrôle le matériel informatique) et le «logiciel d'application» (développé en fonction de l'entreprise et du type de travail). -Le logiciel système comprend les logiciels de base (système d'exploitation (OS) et middleware (système de gestion de base de données (SGBD), fonction de conversion kana-kanji, etc.) ・ Types de logiciels d'application: Word, Excel, Photoshop, navigateurs en général, Outlook, etc.) ・ Positionnement du système d'exploitation: Situé entre le matériel et le logiciel d'application, il fournit un environnement qui facilite l'utilisation de l'ordinateur par les utilisateurs en faisant la médiation entre les deux. ・ Type de système d'exploitation

type Caractéristique
UNIX OS développé dans les années 1970. Souvent utilisé pour les serveurs et les postes de travail. Actuellement, les systèmes d'exploitation dérivés tels que Linux sont populaires.
MS-DOS Un système d'exploitation développé conjointement par IBM et Microsoft, annoncé en 1981. Vous ne pouvez exécuter qu'une seule application à la fois.
Mac OS OS annoncé par l'actuel Apple Inc. en 1984. Interface graphique adoptée avant Windows.
Windows3.0、3.1 Annoncé en 1990. Première utilisation de l'interface utilisateur graphique par l'entreprise (6 ans derrière Mac)

・ Principales fonctions du système d'exploitation ・ ・ ・ Gestion des tâches, gestion des tâches, gestion du stockage, gestion des entrées / sorties, etc. -Lorsque le système d'exploitation reçoit un travail d'un utilisateur, il l'analyse et crée une tâche. Une tâche est une unité de travail traitée par un ordinateur et les tâches sont efficacement affectées et contrôlées par un processeur (CPU). -Le processeur traite le programme en exécutant les instructions une par une dans l'ordre pour chaque tâche. Cependant, lorsqu'une interruption se produit, l'exécution de la tâche est interrompue et le processeur devient libre. L'OS exécute une autre tâche pendant ce temps libre par «multi-programmation» et traite plusieurs tâches en parallèle.

WBT: programmation en langage C Step1 (3 jours)

(Non appris)

WBT: programmation en langage C Step2 (3 jours)

(Non appris)

Introduction à l'algorithme (3 jours)

(Non appris)

Introduction au processus de développement (1 jour)

(Non appris)

Introduction à la conception d'analyse structurée (1 jour)

(Non appris)

Introduction à la technologie de sécurité (1 jour)

(Non appris)

Introduction à la technologie réseau (1 jour)

(Non appris)

Exercice d'implémentation du langage C (9e)

(Non appris)

Projet de développement, exercice 1 (15e)

(Non appris)

Projet de développement, exercice 2 (14e)

(Non appris)

Projet de développement, exercice 3 (12e)

(Non appris)

Recommended Posts

Enregistrez ce que vous avez appris au cours des quatre mois de formation d'ingénieur logiciel en interne (* actuellement en cours)
Vous serez ingénieur dans 100 jours - Jour 29 - Python - Bases du langage Python 5
Vous serez ingénieur dans 100 jours - Jour 33 - Python - Bases du langage Python 8
Vous serez ingénieur dans 100 jours --Jour 26 --Python --Basiques du langage Python 3
Vérifiez le nombre de fois où la requête (sql) a été lancée dans django avec un test
Vous serez ingénieur dans 100 jours --Jour 32 --Python --Basiques du langage Python 7
Vous serez ingénieur dans 100 jours --Jour 28 --Python --Les bases du langage Python 4