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

フィンランド人の現役プログラマーであるシンセツヤネンさん(仮名)とのメールのやり取りの続きです。

前回の記事

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

では、

シンセツヤネンさんのメールで主に

・ウェブサービスを作るのにはどんなものが必要か
・大学のプログラム経由のインターンシップ関連

について触れられていました。

今回は、それに対する僕のメールからやりとりを再開します。

※ちなみに、このシリーズを最初から読みたい方はコチラから※

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

【僕のメール(2019年4月1日)】

こんにちは。

ああ、経済の関係だったんですね。
リーマンショックの後ぐらいの時期でしょうか?

ウェブサービスの公開ってどうやるんでしょうか?
自分ではいくつか小さいウェブアプリを作った事は作ったのですが、自分のPC上でしか見る事ができないもので、ネット上で誰でも見られる状態ではないんです。

ウェブプログラミングに関しては今の所それほど経験がありません。下記のリンクはStack Overflowで僕がした質問で、これを見ると僕の今のレベルが大体わかると思います。
https://stackoverflow.com/questions/55299070/how-to-use-domain-name-instead-of-local-host-ip-with-php/55299709?noredirect=1#comment97599188_55299709

※補足※
Stack Overflowとは、プログラマーやプログラマーの卵たちが集まって、わからない事を質問したり、質問に答えたりしてあげる事で知識を共有できるフォーラムです。世界中のプログラマーたちに利用されています。

下記の言語でプログラミングをするとしたら、仕事に応募する前までに「最低限」できるようになっておきたいレベルってどんなものでしょうか?どんな機能が最低限実装できるようにしておきたいですか?

– HTML
– CSS
– JavaScript
– PostgreSQL

どの道、最低1つはデータベース系のプログラミング言語もできるようになっておいた方がよさそうですね。僕は今の所学校ではMySQLなら使った事があります。

僕の通っている大学では、インターンシップは必須となっています。
なるほど、Yliopistoの方の大学ではインターンシップは一般的ではないんですね。

※補足※
フィンランドにある2種類の大学、YliopistoとAmmattikorkeakouluに関する説明は、下記の関連記事参照

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

シンセツヤネンさんの友達にはAmmattikorkeakoulu系の大学でITを勉強した人はいますか?

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

こんにちは。

今日はちょっと夜忙しいので、短めにお返事して、また後で詳しい返事を書きますね。(急いで書いたので、)ちょっと読みにくいかもしれません。

> リーマンショックの後辺りでしょうか?

仕事に応募したのは2013年と2014年の春です。2014年に父経由でようやく仕事に就けました。

> ウェブサービスの公開ってどうやるんでしょうか?

まず、ウェブアプリをアップロードするためのサービスか、仮想サービスを立ち上げる必要があります。仮想サービスにはウェブサービスや他の様々なプログラムをアップする事ができます。

(Hetznerというのが安くすみます:
https://www.hetzner.com/cloud )

ウェブサービスを公開するには何種類か方法があります。どの方法にもそれぞれ長所と短所があるのですが、このメールではちょっと書ききれません。仮想サービスを使えばほぼなんでもできるが、そう簡単でもない、とだけ言っておきます。

リンク先のプログラムはPHPで書かれているのでしょうか。PHPではもちろんいろんなサービスが用意されていますが、私としてはこれといって勧められるものは知らないです。私にはPHPはあまり使っておらず経験がないので。JavaやC#、Kotlinを使っています。

個人的にはJavaをオススメしますが、PHPはどれぐらいできますか?PHPでアプリを公開したいと考えてますか?

もしウェブサービスの制作をJavaでやりたいのであれば、下記のものから試してみるのがよいと思います。

http://sparkjava.com/

> シンセツヤネンさんの友達にはAmmattikorkeakoulu系の大学でITを勉強した人はいますか?

1年勉強した人が1人いましたが、後にYliopisto系に移りました。

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

こんにちは。

前回のメールでカバーしきれなかった部分について書きますね。

> 下記の言語でプログラミングをするとしたら、
> 仕事に応募する前までに
> 「最低限」できるようになっておきたいレベルって
> どんなものでしょうか?どんな機能が
> 最低限実装できるようにしておきたいですか?

> – HTML
> – CSS
> – JavaScript
> – PostgreSQL

私の見る限りでは、少なくとも

HTML & CSSでは、
==========
・レイアウトを作り、CSSのフレームワークを使わずにナビゲーションバーを出せる事。これにはCSSの基本的なノウハウが要求されます。

・CSSのフレームワークを1つぐらいはよく理解している事。例としては、

https://getbootstrap.com/

などです。

実際の所、何もない所から始めるのは難しいですし、進みも遅いと思います。
Bootstrapやそれに似たようなプログラムを使ってページを作れば、見栄えもよくなります。

JavaScriptでは、
==========
・AJAXの呼び出しができる事。ページ全体を再ロードせず、一部のみでも更新できる事。
・少なくともJSライブラリを少しでもウェブサーバーとのコミュニケーションに使える事。一時期はjQueryが一般的でした。今でもよく使われています。
・少なくとも少しはJSライブラリを使ってインタラクティブ系の機能をスムーズに実装できる事。最近ではもはやあまり「イマドキ」ではないですが、jQueryは良いと思います。

AJAXやREST、JSONなどには馴染みはありますか?もしなければ、下記のリンクも覗いてみると良いです。

https://hackersandslackers.com/making-ajax-calls-with-jquery/

> どの道、最低1つはデータベース系のプログラミング言語も
> できるようになっておいた方がよさそうですね。
> 僕は今の所学校ではMySQLなら使った事があります。

MySQLができるなら、そのままそれを使い続けるのでも良いと思います。MySQLは比較的シンプルなデータベースで、SQL系のデータベースはどれも似たような感じです。

最後にちょっとだけフィンランド語の修正を。

“On pakollinen tehdä työharjoittelua”

よりも、

“On pakollista tehdä työharjoittelua”

にした方が自然ですね。

文法的に間違いではないのですが、ちょっと不自然に聞こえます。

それか、

“työharjoitteluun osallistuminen on pakollista”

の方がいいかもしれません。

【僕のメール(2019年4月5日)】

こんにちは。

素早いお返事ありがとうございます!
でも、もし忙しければ、返事はすぐでなくても大丈夫ですよ(^^)
僕自身、返事をするのに何日かかかってますし。

ここまでアドバイスをいただいて、どんなものが必要になってくるのかだいぶイメージが湧いてきました。すごく助かります!

ところで、もしご迷惑でなければ、このメールのやりとりを僕のブログで公開してもいいですか?

いただいたアドバイスはどれも有益なものだったので、もしかしたら僕のブログの読者の中にも内容を知りたい人がいるかもしれません。

もちろん名前は伏せますね。

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

こんにちは。

いえいえ、助けになれているようでこちらとしても嬉しいです。

どうぞ、公開しても構いませんよ。そうですね、私の名前は伏せてもらった方がいいです。ブログ記事ができたら、私にもリンクを送ってください。日本語はよくわかりませんが、Google翻訳でちょっと読んでみようと思います。

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

【僕のメール(2019年4月1日)】

Moi,

Ahh, talous.
Oliko se ehkä finanssikriisin (2007-2009) jälkeen?

Kuinka web-palvelu julkaistaan?
Olen kirjoittanut muutama pieniä web-sovellusta, mutta
se oli vain omalla tietokonella eikä ole julkinen verkkosivu
jolle kuka tahansa pääsee.

(Web-ohjelmoinnin aluella minulla ei ole niin paljon kokemusta, ja
tämä on kysmys jota laitoin Stack Overflow:lle, joka myös näyttää minun
nykyistä tasoani)
https://stackoverflow.com/questions/55299070/how-to-use-domain-name-instead-of-local-host-ip-with-php/55299709?noredirect=1#comment97599188_55299709

Jos ohjelmoidaan käyttäen allella esitettyä kieliä, mitä olisi yleisesti
luultavasti “matalin taso”
jota työhakijan täytyy ainakin osata? Siis millaisten toimintojen pitää
olla sellaisella sovelluksella?

– HTML
– CSS
– JavaScript
– PostgreSQL

Vaikuttaa että kannattaa osata ainakin yhtä tietokannan liittyvää kieltä
joka tapauksessa.
Olen käyttänyt MySQL:ta koulussa.

On pakollinen tehdä työharjoittelua ainakin minun ammattikorkeakoulussani.
Ahh okei, siis yliopistossa työharjoittelu ei ole niin tavallinen.

Onko sinulla myös kavereita jotka ovat opiskelleet IT:ta
ammattikorkeakoulussa?

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

Moi,

koska tänään minulla on hyvin kiireinen ilta, vastaan lyhyesti pariin
kohtaan, kysyn pari kysymystä, ja vastaan tarkemmin myöhemmin. Tämä
email saattaa olla hiukan sekava.

> Oliko se ehkä finanssikriisin (2007-2009) jälkeen?

hain töitä vuosien 2013 ja 2014 keväinä, kunnes 2014 sain lopulta isän
kautta työn.

> Kuinka web-palvelu julkaistaan?

Tarvitset jonkin palvelun, johon voit uploadata web-sovelluksesi, tai
sitten voit hankkia virtuaalipalvelimen. Virtuaalipalvelimelle voit
sitten asentaa web-palvelusi, tai mitä tahansa muitakin ohjelmia.

(virtuaalipalvelimen saa halvimmalla Hetzneristä:
https://www.hetzner.com/cloud )

On monia erilaisia tapoja julkaista web-palvelu, ja niissä on omat edut
ja haittansa. En ehdi tässä emailissa käsitellä niitä. Sanon vain, että
virtuaalipalvelimella voi tehdä mitä tahansa, mutta se on mahdollisesti
myös vaikein.

PHP:n (ilmeisesti kirjoitit PHP:llä?) kanssa käyttäisin varmaan jotakin
valmista palvelua, mutta en osaa nyt suositella mitään tiettyä.

Ja itse asiassa PHP:n kanssa minulla on erittäin vähän kokemusta .
Käytän itse Javaa, C# tai Kotlinia.

Suosittelisin sinullekin Javaa, mutta ensin kysyn, että kuinka paljon
osaat jo PHP:tä? Tai haluatko julkaista juuri jonkun vanhan PHP-palvelusi?

Jos taas web-palvelun kirjoittaminen Javalla kiinnostaa, suosittelisin
aloittamaan tästä:

http://sparkjava.com/

> Onko sinulla myös kavereita jotka ovat opiskelleet IT:ta
> ammattikorkeakoulussa?

Yksi opiskeli vuoden, mutta vaihtoi yliopistoon.

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

Moi,

vastaan nyt pariin muuhun kysymykseen, johon en illalla ehtinyt vastata.

> Jos ohjelmoidaan käyttäen allella esitettyä kieliä, mitä olisi
> yleisesti
> luultavasti “matalin taso”
> jota työhakijan täytyy ainakin osata? Siis millaisten toimintojen
> pitää olla sellaisella sovelluksella?
> – HTML
> – CSS
> – JavaScript
> – PostgreSQL

Tässä minun suuntaa antava arvio. Pitää vähintään osata…:

HTML & CSS
==========
– …toteuttaa tyypillinen keskitetty layout sisältöineen ja
navigiointipalkkeineen ilman CSS frameworkkeja. Tarkoitan tällä vähän
samanlaista layouttia, kuin mitä esim. Mediumilla on. Tämä edellyttää
CSS:n perustuntemusta.

– …tuntea yksi CSS-framework kohtuullisen hyvin. Yksi hyvä esimerkki
on https://getbootstrap.com/
Todellisuudessa nimittäin on liian hidasta ja vaikeaa aloittaa tyhjästä.
Bootstrapin tai vastaavan avulla ohjelmoijakin pystyy tehdä sivun, joka
näyttää kohtuullisen hyvältä (ilman web-designeria siis).

JavaScript
==========
– …tehdä AJAX-kutsuja, ja päivittää sivu lataamatta koko sivua uudelleen.
– …käyttää ainakin yhtä JS-kirjastoa web-serverin kanssa
kommunikointiin. jQuery oli joskus todella yleinen, ja on kai nykyäänkin.
– …käyttää ainakin yhtä JS-kirjastoa helpottamaan interaktiivisen
ominaisuuksien toteuttamiseen. jQuery on ihan hyvä, vaikka se ei olekaan
niin “muodikas” enää.

Ovatko käsitteet AJAX tai REST tuttuja? Entä JSON? Jos ei, niin tutustu
esim. tätä kautta siihen:

https://hackersandslackers.com/making-ajax-calls-with-jquery/

> Vaikuttaa että kannattaa osata ainakin yhtä tietokannan liittyvää
> kieltä joka tapauksessa.
> Olen käyttänyt MySQL:ta koulussa.

Jos osaat käyttää MySQL:ää, kannattaa pysytellä siinä niin kauan, kun
pitää opetella perusteita. Se on kuitenkin ihan kelpo tietokanta, ja
SQL-tietokannat ovat suhteellisen samanlaisia keskenään.

Loppuun pieni korjaus:

(Tässä välissä pieni korjaus:
“On pakollinen tehdä työharjoittelua”
->
“On pakollista tehdä työharjoittelua”
Näin se on jo kieliopillisesti oikein, mutta se kuulostaa
hiukan oudolta vielä. Ehkä parempi olisi:

“työharjoitteluun osallistuminen on pakollista”
)

【僕のメール(2019年4月5日)】

Moi,

Kiitos nopeasta vastauksestasi!
Jos olet kiireinen kyllä voit ottaa aikaa eikä sinun tarvitse vastata
niin heti.
Minulta itsekin lähes aina kestää muutama tai useita päivää vastaamaan,
joten ei huolta 🙂

Okei, nyt voin kuvitella millaisia asioita ovat tarpeellisia. Ihan
informatiivinen!

Muuten, jos ei häiritse sinua, saanko kirjoittaa blogissani sinusta ja
meidän keskustelustamme (pääosin neuvoistasi) me olemme tehneet tällä
sähköpostilla?
Uskon sinun neuvojesi olevan niin hyödyllisiä että minun blogin
lukijatkin saavat hyötyä tiedoista.
Tietysti voit pysyä anonyyminä blogissani.

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

Moi,

eipä mitään, on ilo vastailla välillä.

Jos haluat kertoa muille näkemyksistäni, kaikin mokomin. Mutta on
varmaan parempi, jos nimeäni ei mainita. Ja laita minullekin linkki
sitten, kun julkaiset. En ehkä ymmärrä japania, mutta vilkaisisin
mielellään ihan vaikka Google Translatella.