現役プログラマーからもらった、IT業界での就職アドバイス(その1)

↓↓ 前回の記事 ↓↓

Page 76:フィンランド語でYouTube投稿したらラッキーな事が起きました

では、YouTubeでフィンランド語の練習がてら、フィンランド語で

「誰か僕にIT業界での就職アドバイスしてくださーい(^^)」

という内容の動画を投稿したら、本当にアドバイスをしてくれる現役プログラマーのフィンランド人が現れた、という話をしました。

今回の記事では、僕にアドバイスをくれたフィンランド人

シンセツヤネンさん(仮名)

とのメールのやりとりを公開していきます。

前回の記事でも書きましたが、メールの内容は既にある程度のプログラミングの知識がある人でないとわかりにくいかもしれません。

今はわからない人でも、プログラミングの本やドットインストールなどでプログラミング言語を勉強してからであれば、何の話かわかるようになると思います。

【シンセツヤネンさんのメール(2019年3月18日)】

こんにちは。

コメントを書いている時に気づいたのですが、プログラミング言語そのものよりも、何をプログラミングできるかや、どんなツールを使いこなせるかの方が重要ですね。例えば、ウェブサービスを作るとしたら、大抵の場合、次のようなツールや機能が必要になります。

★サーバー側
・プログラミング言語。JavaやJavaScriptがよく使われます。
・ウェブフレームワーク。Javaの場合、Spring Bootがよく使われます。

・データベース。(SQL系のものがよく使われます。例えばPostgreSQLです)

★クライエント側
・HTML+CSS+JavaScript、CSSとJavaScriptライブラリ(React, Angular, jQueryなど)
・ウェブページがサービス側とどうコミュニケーションをとっているのかも理解している必要があります。

(ちなみに、JavaScriptはJavaとは関係のない言語です。JavaScriptはマーケティングのためにつけられた名前です。)

これらに沿ってゲームやモバイルアプリやデスクトップアプリを作るためには他の技術やツールも覚える必要があります。

基本的には、プログラミングに興味のある知り合いには、個人的に自分だけのプログラミングプロジェクトから取り組むのがいいよと勧めています。どんなものを作ればいいかは、その人の興味関心や現在のプログラミングのレベルによります。若い人はゲームを作りたい人が多いですけどね。趣味で自分でツールを作ったりする人もいます。

あなたはどうですか?何か興味のあるものはありますか?

【僕のメール(2019年3月21日)】

丁寧な説明、ありがとうございます!

僕としては、何か学習に関係するアプリが作れたらなと思っています。
例えば、下記はそういった関連の会社のHPです。

http://www.sanako.com/

ところで、もしご迷惑でなければ、職場でどんなプログラミング言語を使っているか、どんなプログラムを作っているかも聞いてもよいですか?

【シンセツヤネンさんのメール(2019年3月21日)】

こんにちは。

学習アプリに興味があるなら、もちろんそういったものから取り掛かるのがよいでしょう。内容としては面白いものを目指したいですが、まずは簡単なものから始めるのがいいですね。それと同時に、常に何か新しいものも学ぶようにするとよいです。自分だけのプロジェクトを作る事で、全体像を捉えて学ぶという事もしやすくなりますしね。

現時点ではあなたが何をどれだけのレベルでできるのかよく把握していないので、どんなものを勧めたらよいかはちょっと難しい所です。でも何か気になる事があったら何でも聞いてください!どんな方向性でいけばいいのかできるだけ手助けしようと思います。いろんなプロジェクトをこなす事で経験も身に付きますし。

私が使っている主なプログラミング言語はTypeScript、Java、 Kotlin、それから多少C++もやります。Pythonもそこそこ使っています。

TypeScriptは、ウェブページに何かを付け足す時に使っています。私の仕事の場合、3Dグラフィックやクライエントサーバーとのコミュニケーション、ユーザーインターフェースなどが該当します。

Javaはサーバー側のプログラミングで使っています。仕事の外ではオープンソースの3DマルチプレイヤーアクションArenaのゲームなどを作ったりしています。

Kotlinはサーバー側のプログラミングで使っています。

C++は3Dモデルのコンバージョンや他のツールと一緒に使ったりしています。

Pythonはデータアナリシスや様々はスクリプトを作るのに使っています。

【僕のメール(2019年3月24日)】

こんにちは。

うわー、いろんな言語知ってて、多方面でアプリ作ってるんですね!

僕はC言語での比較的シンプルなチェスのゲームとかだったら作った事があるのですが、Spring Bootと組み合わせて作るみたいな、ちょっと複雑性を増したものになるとどうやったらいいのか今の段階では想像がつかなくて…。

YouTubeのビデオではC言語でチェスを作ったと言ったのですが、下のリンクから僕の書いたチェスのコードが見られます。

Page 45:C言語でチェスと将棋のゲームを作ってみた

プログラミングは始めてからどれぐらい経つんですか?

【シンセツヤネンさんのメール(2019年3月24日)】

こんにちは。

ハハハ、ありがとうございます。

簡単なものから始めるのはいいと思いますよ。自分も最初のうちは「番号当てゲーム」みたいなプログラムから始めました。ただ、どこかのタイミングでグラフィック系のものに飛び込む必要はありますね。

C言語の勉強はとてもいいのですが、他の言語も使うとよいと思います。Javaとかは広く使われますね。C言語はライブラリがあまり豊富ではなく、ちょっと使いにくいですね。その点、Javaなどはライブラリが充実していますので、C言語の時のような「落とし穴」にはハマりにくいです。

たしかYouTubeのビデオでは、そのチェスのゲーム、Javaでも作ったと言っていましたね。C言語とJava、どちらで作った時が簡単に感じましたか?

ライブラリに関してですが、まずは勉強中のプログラミング言語の基礎となる部分をしっかり理解し、それからライブラリにも手を付けるのがいいと思います。まずは簡単なものから始めそれからSpring Bootなどの難しめのものにも手を付けるという順序がよいでしょう。

私はプログラミングを始めたのは中学生の頃からです。C♯から入りました。

↓↓ メール編(その2)へ続きます ↓↓

現役プログラマーからもらった、IT業界での就職アドバイス(その2)

※フィンランド語での原文はコチラ※

【シンセツヤネンさんのメール(2019年3月18日)】

Moi,

Kommentissani tosiaankin totesin, että ohjelmointikieliä tärkeämpää on
se, mitä osaa ohjelmoida, ja mitä työkaluja osaa käyttää. Esimerkiksi
tehdäkseen web-palveluita, tarvitaan yleensä seuraavia työkaluja ja
toimintoja:

– Palvelinohjelmointia (server side). Tähän tarvitaan:
– Jokin ohjelmointikieli. Tyypillisesti Java tai JavaScript
– Jokin web framework. Javan kanssa käytetään monesti esimerkiksi
Spring Boot:ia.
– Tietokanta (yleensä käytetään SQL-tietokantoja, kuten PostgreSQL)
– Client side -ohjelmointia
– HTML + CSS + JavaScript, sekä CSS- ja JavaScript-kirjastoja
(kuten React, Angular, jQuery)
– Pitää myös ymmärtää, miten web-sivu kommunikoi palvelien kanssa

(Huom! JavaScript:llä ei ole mitään tekemistä Javan kanssa. JavaScript
on siten nimetty markkinointisyistä!)

Vastaavasti pystyäkseen tehdä pelin, mobiilisovelluksen tai
työpöytäsovelluksen, täytyy osata muita tekniikoita ja työkaluja.

(Mainitsen tässä välissä, että ohjelmoinnista puhuttaessa käytetään
tyypillisesti hyvin paljon suoraan englannista lainattuja sanoja.
Minulle niiden suomennokset kuulostavat oudoilta)

Suosittelen kaikille ohjelmoinnista kiinnostuneille tutuilleni, että
aloittavat jonkin oman ohjelmointiprojektin. Se mitä tekee riippuu
omista mielenkiinnonkohteista ja taitotasosta. Monet nuoret haluavat
tehdä pelin. Jotkut taas tekevät harrastustansa varten jonkin työkalun tms.

Mitä sinä itse haluaisit tehdä? Mikä kiinnostaisi eniten?

【僕のメール(2019年3月21日)】

Moi,

Kiitos taas yksityiskohtaisesta neuvostasi!

Olen kiinnostunut jonkinlaisesta oppimiseen liittyvästä sovelluksesta.
Tämä on yksi esimerkki sellaisiin asioihin liittyvästä yrityksista.

Home

Muunten, jos se ei häiritse, saanko kysyä mitä ohjelmointikieltä
pääasiassa käytät ja millaisia asioita teet töissä?

【シンセツヤネンさんのメール(2019年3月21日)】

Moi,

jos oppimissovellukset kiinnostavat, niin kannattaa varmaan aloittaa
jokin projekti siihen liittyen. Kannattaa kuitenkin aloittaa jostakin
yksinkertaisesta mutta kiinnostavasta. Samalla kannattaa aina opetella
jotakin uutta. Omia projekteja tehdessä oppii hallitsemaan kokonaisuuksia.

Minun on vaikea ehdottaa, mitä sinun kannattaisi tarkalleen ottaen
tehdä, koska en tiedä, mitä osaat. Mutta jos on kysyttävää, niin kysy
ihmeessä! Voin auttaa löytämään oikean suunnan. Kokemusta löytyy
monenlaisista projekteista.

Ohjelmoin itse pääasiassa TypeScriptillä, Javalla, Kotlinilla ja jonkin
verran C++:lla. Pythoniakin tulee käytettyä kohtuullisen usein.

TypeScriptiä käytän, kun toteutan web-sivuille ominaisuuksia. Minun
töissä se sisältää yleensä 3D-grafiikkajuttuja,
client-server-kommunikointia ja UI:n toteuttamista.

Javaa olen käyttänyt serveriohjelmoinnissa, ja selain-puolella vain,
koska on pakko (suht. eriskummallisesta syystä, johon en nyt syvenny).
Vapaa-ajalla olen ohjelmoinut Open Source 3D multiplayer online action
arena -pelin.

Kotlinia käytän serveriohjelmoinnissa.

C++:aa olen käyttänyt 3D-mallien konverttointityökalun parantelussa, ja
joissain muissa työkaluissa.

Pythonilla teen kaikenlaisia skriptejä, data-analyysiä yms.

【僕のメール(2019年3月24日)】

Moi,

Wow osaat monia eri kieltä ja eri alueilla sovelluksia.

Olen tehnyt melko primitiivisia asioita kuten C:kielellä tehtyä
shakkipelia,
mutta minulla ei ole aavistusta monimutkaisempia asioita, esimerkiksi
miten käyttää ohjelmointikieltä ja Spring Boot:ia yhdessä jne.

Videossa ni mainitsin että tein shakkipelia C kielellä, ja alalla olevan
linkin kautta voit nähdä
millaiselta koodini näyttää.

Tämä on blogini, ja siellä on screenshot osa minun kirjoittaman koodistani.

Page 45:C言語でチェスと将棋のゲームを作ってみた

Kuinka pitkää olet harjoitellut ohjelmointia?

【シンセツヤネンさんのメール(2019年3月24日)】

Moi,

heh, kiitos 🙂

Se on hyvä aloittaa primitiivisestä. Itsekin tein konsolipohjaisia
‘arvaa numero’-ohjelmia aluksi. Jossain vaiheessa piti sitten tehdä
loikka graafisiin sovelluksiin.

C-kieli on ihan hyvä oppia, mutta itse suosittelisin käyttämään jotain
muuta kieltä, kuten Javaa, suurimman osan ajasta. C-kieltä on vaikeaa
käyttää oikein, ja sille on vähemmän kirjastoja. Esimerkiksi Javassa ei
ole samanlaisia sudenkuoppia lähellekään niin paljon, ja sille on
*paljon* kirjastoja.

Sanoit muistaakseni siinä samassa videossa, että teit shakkipelin myös
Javalla. Tuntuiko se helpommalta?

Ja mitä tulee kirjastoihin, ensin pitää tietty opetella kielen
perusteet, ja vasta sitten alkaa käyttää kirjastoja. Ja silloinkin
kannattaa aloittaa suht. yksinkertaisista kirjastoista, eikä isoista ja
monimutkaisista (kuten Spring Bootista).

Aloitin itse ohjelmoimaan yläasteella. Aloitin itse ohjelmoinnin
C#-kielellä.

%d人のブロガーが「いいね」をつけました。