J'ai recherché les compétences nécessaires pour devenir ingénieur web avec Python

introduction

J'ai gratté un site de changement d'emploi avec Python et ai brièvement étudié les «compétences nécessaires». Puisque je vise à devenir ingénieur, je me demandais quels types d'exigences sont réellement mis en place sur le chantier de changement d'emploi.

Idées et implémentations <a href="https://qiita.com/kakiuchis/items/2c9b327cadf1e8dbdf6e" rel="nofollow noopener[ target="_blank"> J'ai appris à devenir directeur Web pour des personnes inexpérimentées. J'ai pris l'article de , que j'ai considéré d'une manière basée sur les données, comme référence.

Veuillez signaler les erreurs et les petites erreurs!

Conclusion de la compétence requise

Pour ceux qui veulent juste voir les résultats

--Commun

--Du côté serveur

Cela ne me dérange pas de me salir du milieu.

Est-ce le résultat attendu?

Puis au contenu.

Environnement et ordre de construction

--Environnement

--Référence

Collecte d'informations sur les sites de changement d'emploi

Grattage → La mise en œuvre de l'analyse morphologique est généralement comme indiqué dans l '<a href="https://qiita.com/kakiuchis/items/2c9b327cadf1e8dbdf6e" rel="nofollow noopener[ target="_blank"> article de référence , donc il est omis. Le déroulement est le suivant: Obtenez l'URL de l'emploi pour chaque emploi → Ouvrez l'URL et obtenez la partie de compétence requise → Calculez la fréquence pour chaque nom par analyse morphologique. <a href="https://qiita.com/itkr/items/513318a9b5b92bd56185" rel="nofollow noopenereutic target="_blank"> Grattage avec Python et belle soupe et <a href = "https: / /www.crummy.com/software/BeautifulSoup/bs4/doc/ "rel =" nofollow noopener "target =" _ blank "> Document officiel a également été mentionné.

Surtout le grattage ・ Mettez en veille avant d'ouvrir la page ・ Vérifiez l'interdiction en consultant le fichier robots.txt Soyons prudents.

Le nombre d'emplois acquis est Partie avant: 208 cas Côté serveur: 181 cas Jeux: 175 était

une analyse

Cliquez ici pour le code utilisé pour l'analyse.

analysis_job_search.py


import MeCab
import pandas as pd
import numpy as np
import mysql.connector as mydb
import pandas.io.sql as psql
import collections

pd.set_option('display.max_rows', 500)

#Méthode pour extraire la nomenclature du texte
def devide_by_mecab(text):
    tagger = MeCab.Tagger("-Ochasen")
    node = tagger.parseToNode(text)
    word_list = []
    while node:
        pos = node.feature.split(",")[0]
        if pos in ["nom"]:
            word = node.surface
            word_list.append(word)
        node = node.next
    return "  ".join(word_list)

#Connectez-vous aux paramètres personnels MySQL ici
connection = mydb.connect(
  host = '',
  port = '',
  user = '',
  password = '',
  database = ''
)

#Obtenir des données de DB
df_frontend = psql.read_sql("SELECT * FROM table WHERE search_word = 'l'extrémité avant'",connection)
df_serverside = psql.read_sql("SELECT * FROM table WHERE search_word = 'Du côté serveur'",connection)
df_game = psql.read_sql("SELECT * FROM table WHERE search_word = 'Programmeur de jeux'",connection)

#need_Une méthode qui décompose les compétences en nomenclature et renvoie
def get_all_words(df):
    all_words = []
    for index, row in df.iterrows():
        words = devide_by_mecab(row['need_skills']).split()
        all_words.extend(words)
    return all_words

count_of_words_frontend = collections.Counter(get_all_words(df_frontend))
count_of_words_serverside = collections.Counter(get_all_words(df_serverside))
count_of_words_game = collections.Counter(get_all_words(df_game))

#Voir toute la nomenclature par ordre de fréquence
count_of_words_frontend.most_common()
count_of_words_serverside.most_common()
count_of_words_game.most_common()

#Disposition des mots liés à la compétence(count >= 6)
frontend_top_words = ['JavaScript', 'CSS', 'HTML', 'js', 'Vue', 'React', 'conception', 'équipe', 'Git', 'UI', 'PHP', 'UX', 'Angular', 'Ruby', 'Javascript', 'jQuery', 'Photoshop', 'la communication', 'API', 'TypeScript', 'SPA', 'Java', 'Sass', 'designer', 'Illustrator', 'JS', 'tester', 'serveur', 'webpack', 'GitHub', 'AWS', 'AngularJS', 'WordPress', 'Webpack', 'Rails', 'iOS', 'CMS', 'Python', 'Redux', 'MySQL', 'Gulp', 'Android', 'gulp', 'C', 'SCSS', 'git', 'DB', 'Linux', 'Babel', 'Docker', 'CI']
serverside_top_words = ['Ruby', 'PHP', 'AWS', 'Python', 'C', 'Java', 'serveur', 'Rails', 'équipe', 'Infrastructure', 'js', 'Git', 'serveur', 'Android', 'JavaScript', 'Go', 'Linux', 'Perl', 'HTML', 'MySQL', 'RDBMS', 'CSS', 'Kura', 'Tu fais', 'API', 'de face', 'la gestion', 'GitHub', 'iOS', 'DB', 'GCP', 'React', 'Vue', 'réseau', 'Node', 'HTTP', 'Swift', 'CI', 'Objective', 'Docker', 'Sécurité', 'Javascript', 'Azure', 'originaire de', 'PostgreSQL', 'architecture', 'SQL', 'tester', '#', 'intelligent', 'téléphone', 'UI', 'MVC', 'la communication', 'git', 'Scala', 'Kotlin' , 'CD', 'Base de données', 'TypeScript', 'Apache', 'LAMP', 'designer', 'récipient', 'RDB', 'Laravel']
game_top_words = ['C', '3', 'D', 'Unity', 'Java', 'PHP', 'conception', '++', 'serveur', '++、', 'réseau', 'JavaScript', 'Android', 'la gestion', '#、', 'Objective', 'Photoshop', 'Maya', 'équipe', 'designer', 'Linux', 'MySQL', 'Ruby', 'Python', 'Infrastructure', '#', 'Graphique', 'serveur', 'Excel', 'graphique', 'la communication', 'Unreal', 'DCG', 'AWS', 'Perl', 'Illustrator', 'Engine', 'planificateur', 'Word', 'originaire de', 'mouvement', 'réalisateur', 'HTML', 'UI', 'Flash', 'effet', 'VB', 'du son', 'DS', 'OpenGL', 'iOS', 'DirectX']

#Une méthode pour créer un DataFrame de mots et d'occurrences
def get_top_word_df(top_words,count_of_words):
    df = pd.DataFrame({})
    for i,word in enumerate(top_words):
        word_data = pd.Series([word,count_of_words[word]], index=['word','count'], name=i)
        df = df.append(word_data)
    return df

df_frontend_top_words =  get_top_word_df(frontend_top_words,count_of_words_frontend)
df_serverside_top_words =  get_top_word_df(serverside_top_words,count_of_words_serverside)
df_game_top_words =  get_top_word_df(game_top_words,count_of_words_game)

for df in [df_frontend_top_words,df_serverside_top_words,df_game_top_words]:
    df['rank'] = df['count'].rank(ascending = False, method = 'min').astype(int)
    df['count'] = df['count'].astype(int)

df_frontend_top_words[['rank','word','count']]
df_serverside_top_words[['rank','word','count']]
df_game_top_words[['rank','word','count']]

Premièrement, tous les mots sont sortis par ordre de fréquence, et les mots qui ne semblent pas être liés à la compétence sont supprimés manuellement et réémis. Je l'ai ajouté parce que le programmeur du jeu était personnellement intéressé.

Le résultat est le suivant.

l'extrémité avant

rank word count
1 JavaScript 147
2 CSS 145
3 HTML 131
4 js 72
5 Vue 63
5 React 63
7 conception 60
8 équipe 40
9 Git 34
9 UI 34
11 PHP 31
12 UX 30
13 Angular 29
14 Ruby 23
15 Javascript 21
16 jQuery 20
16 Photoshop 20
18 la communication 18
18 API 18
18 TypeScript 18
18 SPA 18
22 Java 16
22 Sass 16
24 designer 15
24 Illustrator 15
24 JS 15
24 tester 15
28 serveur 14
29 webpack 13
29 GitHub 13
29 AWS 13
29 AngularJS 13
33 WordPress 12
33 Webpack 12
33 Rails 12
36 iOS 11
36 CMS 11
36 Python 11
36 Redux 11
40 MySQL 10
40 Gulp 10
42 Android 9
42 gulp 9
42 C 9
45 SCSS 8
45 git 8
47 DB 7
47 Linux 7
49 Babel 6
49 Docker 6
49 CI 6

Du côté serveur

rank word count
1 Ruby 81
2 PHP 67
3 AWS 50
4 Python 43
5 C 42
6 Java 41
7 serveur 37
8 Rails 34
9 équipe 33
10 Infrastructure 31
11 js 29
12 Git 27
12 serveur 27
14 Android 26
14 JavaScript 26
14 Go 26
17 Linux 24
17 Perl 24
19 HTML 21
19 MySQL 21
19 RDBMS 21
22 CSS 19
23 Kura 18
23 Tu fais 18
23 API 18
26 de face 17
26 la gestion 17
26 GitHub 17
29 iOS 16
30 DB 15
30 GCP 15
30 React 15
33 Vue 14
34 réseau 12
34 Node 12
36 HTTP 11
36 Swift 11
36 CI 11
36 Objective 11
40 Docker 10
40 Sécurité 10
40 Javascript 10
40 Azure 10
44 originaire de 9
44 PostgreSQL 9
44 architecture 9
44 SQL 9
44 tester 9
49 # 8
49 intelligent 8
49 téléphone 8
49 UI 8
49 MVC 8
49 la communication 8
49 git 8
49 Scala 8
57 Kotlin 7
57 CD 7
57 Base de données 7
57 TypeScript 7
57 Apache 7
57 LAMP 7
63 designer 6
63 récipient 6
63 RDB 6
63 Laravel 6

Programmeur de jeux

rank word count
1 C 156
2 3 62
3 D 49
4 Unity 45
5 Java 32
6 PHP 31
7 conception 29
8 ++ 26
9 serveur 22
10 ++、 19
10 réseau 19
12 JavaScript 17
13 Android 15
14 la gestion 14
15 #、 13
16 Objective 12
16 Photoshop 12
16 Maya 12
19 équipe 11
19 designer 11
19 Linux 11
19 MySQL 11
19 Ruby 11
19 Python 11
25 Infrastructure 10
25 # 10
25 Graphique 10
28 serveur 9
28 Excel 9
30 graphique 8
30 la communication 8
30 Unreal 8
30 DCG 8
30 AWS 8
30 Perl 8
36 Illustrator 7
36 Engine 7
36 planificateur 7
36 Word 7
36 originaire de 7
36 mouvement 7
42 réalisateur 6
42 HTML 6
42 UI 6
42 Flash 6
42 effet 6
42 VB 6
42 du son 6
42 DS 6
42 OpenGL 6
42 iOS 6
42 DirectX 6

J'ai l'impression que les résultats sont presque ceux attendus.

À l'origine, les mêmes mots tels que «JavaScript», «Javascript» et «js» devaient être nommés correctement, mais cela semblait difficile car il y avait beaucoup de mots, donc j'étais frustré.

Conclusion

Ingénieur front-end: html, css, javascript sont exceptionnels et cela semble indispensable. De plus, la deuxième étape consiste à pouvoir utiliser des frameworks tels que Vue et React tout en renforçant la conception et l'interface utilisateur / UX, et il serait bon d'approfondir la compréhension côté serveur par la suite.

Ingénieur côté serveur: Le nuage est divisé en «Kura» et «Udo»! …… Conversation silencieuse. Il semble que Ruby, PHP, Python et Java sont les principaux langages (je ne sais pas lequel est C). De plus, le cloud est également une matière obligatoire. Je souhaite également comprendre la base de données, le réseau et le front-end. Il semble y avoir beaucoup d'études.

Programmeur de jeu: Après tout, la direction est un peu différente et c'est intéressant. C ++, C # et Unity, 3D sont les domaines principaux, et il semble qu'il soit nécessaire de se familiariser avec le graphisme lors de la programmation.

J'ai peu de connaissances, donc je ne peux dire que quelque chose de vraiment brutal ... J'aimerais étudier sur la base de ce résultat!

Tâche

―― Puisque le mot est un peu strict, le nombre d'acquisitions est faible (environ 200)

-Comme il s'agit d'une enquête sur un seul site, il y a un biais

la fin

J'ai juste regardé brièvement la fréquence, mais je suis heureux qu'elle ait également servi de guide pour les domaines que je devrais étudier.

Il peut être plus intéressant de comparer sur plusieurs sites ou d'essayer sur un site transversal. Si vous êtes intéressé, veuillez le vérifier de vos propres yeux!

Recommended Posts

J'ai recherché les compétences nécessaires pour devenir ingénieur web avec Python
[Introduction à Python] Comment utiliser l'opérateur in dans l'instruction for?
J'ai écrit un script pour extraire les liens de pages Web en Python
J'ai cherché un nombre premier avec python
J'ai essayé de créer un outil d'échafaudage pour le framework Web Python Bottle
J'ai créé une application Web en Python qui convertit Markdown en HTML
J'ai fait un programme pour vérifier la taille d'un fichier avec Python
Une introduction aux applications Web Python auto-conçues pour un ingénieur Web de troisième année paresseux
Je veux créer une fenêtre avec Python
Étapes pour développer une application Web en Python
[Python] J'ai cherché le plus long Pokémon Shiritori
Je veux afficher la progression en Python!
J'ai essayé de représenter graphiquement les packages installés en Python
Je souhaite intégrer une variable dans une chaîne Python
Je veux écrire en Python! (2) Écrivons un test
J'ai essayé d'implémenter un pseudo pachislot en Python
Je veux échantillonner au hasard un fichier avec Python
Je veux écrire en Python! (3) Utiliser des simulacres
Je veux utiliser le jeu de données R avec python
Le concept de référence en Python s'est effondré un instant, j'ai donc expérimenté un peu.
Je veux juste trouver l'intervalle de confiance à 95% de la différence de ratio de population en Python
[Pour les débutants] Web scraping avec Python "Accédez à l'URL de la page pour obtenir le contenu"
Faisons un saut dans l'industrie manufacturière en utilisant le Web en plus de Python
Comment utiliser la méthode __call__ dans la classe Python
Changer la destination de sortie standard en un fichier en Python
Un moyen simple d'éviter plusieurs boucles for en Python
J'ai essayé "Comment obtenir une méthode décorée en Python"
Je ne savais pas comment utiliser l'instruction [python] for
J'ai essayé d'implémenter la fonction d'envoi de courrier en Python
J'ai fait un chronomètre en utilisant tkinter avec python
Je veux ajouter un joli complément à input () en python
Je veux créer un Dockerfile pour le moment.
J'ai créé un script en Python pour convertir un fichier texte pour JSON (pour l'extrait d'utilisateur vscode)
J'ai créé une classe pour obtenir le résultat de l'analyse par MeCab dans ndarray avec python
J'ai créé un environnement pour Masonite, un framework WEB Python similaire à Laravel, avec Docker!
J'ai aussi essayé d'imiter la fonction monade et la monade d'état avec le générateur en Python
"Livre pour former la capacité de programmation à se battre dans le monde" Exemple de réponse au code Python - Matrice de 1,8 "0"
J'ai écrit un doctest dans "J'ai essayé de simuler la probabilité d'un jeu de bingo avec Python"
Dans la commande python, python pointe vers python3.8
Accédez à l'API Web en Python
J'ai écrit la file d'attente en Python
J'ai écrit la pile en Python
Comment déterminer l'existence d'un élément sélénium en Python
J'ai créé une bibliothèque Python pour appeler l'API de LINE WORKS
Comment vérifier la taille de la mémoire d'une variable en Python
J'ai écrit le code pour écrire le code Brainf * ck en python
Comment vérifier la taille de la mémoire d'un dictionnaire en Python
J'ai écrit une fonction pour charger le script d'extension Git en Python
J'ai essayé de mettre en œuvre un jeu de dilemme de prisonnier mal compris en Python
Je voulais résoudre le problème ABC164 A ~ D avec Python
J'ai fait une commande pour afficher un calendrier coloré dans le terminal
"Livre pour former la capacité de programmation à se battre dans le monde" Exemple de solution de code Python --1.6 Compression de chaîne de caractères
Exécutez le code de sortie sur le serveur Web local en tant que "A, faisant semblant d'être B" en python
"Livre pour former la capacité de programmation à se battre dans le monde" Exemple de solution de code Python --1.5 Conversion en une seule fois
"Livre pour former des compétences en programmation pour combattre dans le monde" Exemple de solution de code Python - 1.7 Rotation de matrice
Mettre le processus en veille pendant un certain temps (secondes) ou plus en Python
"Un livre pour former les compétences de programmation pour combattre dans le monde" Exemple de solution de code Python --2.8 Détection de boucle
J'ai essayé de trouver la différence entre A + = B et A = A + B en Python, alors notez
J'ai créé une fonction pour vérifier si le webhook est reçu dans Lambda pour le moment