1379989_527683143990833_73905857_n

Promjena zanimanja: programer

Nemaš posao.
Odabrao si zanimanje koje nitko ne treba:
ekonomija, pravo, filozofski, frizer, novinarstvo… ebiga, šta si ti znao sa 18 god.
Sex si tada dobivao preko ljubavi pa si mislio da ćeš i posao na istu foru.
Popušio si, nikad gluplju: radi ono što voliš.

Ili, imaš posao, u nekoj umirućoj branši i okolo kukaš kako je malo plaćen.
Ili, nikako da uleti taj neki “državni” posao, sigurnost, koju daju ovih ~28% zaposlenih iz tzv. “realnog sektora”.

Uvijek možete otići u poduzet… ups… kvragu,.. NE!
Izletjelo. Subjektivan sam.
Nemojte, rizkantno. Tek tamo počinje blato. Još s mlad, još ti se hoće živjeti :P ;)

Htjedoh reći, bilo bi pametno da počneš učiti:
programirati!

Učiti programirati

Posla u softverskoj branši nikad više, predviđa se da će tako biti sljedećih min. desetak godina.
Svako malo me netko iz tih tvrtki pita znam li koga?
Lažem.
Ne pitaju više.
Jasno im je da nema nikoga nigdje, da valja. Sve je sa tržišta pokupljeno.

Dakle, počneš danas učiti i za otprilike nekih 1000 sati znaš “nešto”.
To je par sati dnevno i za oko godinu dana… a godina brzo prođe, sjeti se samo prošle godine, koda je jučer bilo a od tada: ništa.

OK, nisi ekspert, nećeš to nikada ni biti, ali možeš okolo ići po firmam koje očajno trebaju bilo koga tko zna išta i tako na mala vrata ući u softversku industriju.

Primjeti da je programiranje znanje koje možeš sam skupiti sa besplatnih tečajeva po Internetu.
Liječnik, tako ne možeš postati danas. Još uvijek ne.
Je li to dobro ili loše? Pošteno ili ne?
To je jednostavno  takvo trenutno stanje u industriji.
Zbog kroničnog nedostatka programera, ne inzistira se,  još uvijek,  da se ima fakultet oko toga.
Prebrzo se sve mijenja tako da formalno obrazovane oko toga i nije baš korisno niti čak i moguće uvijek.

Završila ekonomiju, zna programirati? Može. Primljeno.
Završio muzičku akademiju, zna programirati? Može. Primljeno.

Ide ti se vani raditi, kao veća lova je?
Ne moraš čak za takvim poslom ni ići vani raditi. Sve više tvrtki otvara tu, kod nas, poslovnice ili ih već ima… ili taj famozni teleworking.
Danas vani idu raditi oni čije zanimanje ovisi o fizičkoj prisutnosti: “bauštelci”, liječnici, … i programeri kojima je dosadila RH.

Činjenica jeste, da programiranje u softverskoj industriji nije sav posao.
Ovisno od tvrtke do tvrtke, proizvoda, oko, od ~30%-70% čini programiranje.
Znači, ima dosta popratnih poslova pa će možda tvoj talent i ona sexy želja da radiš što voliš isplivati na sunce žarko.

Poanta je da je to lukrativna industraija i da guta svašta.
Eto. To je to. Svi sretni i zadovoljni.
Kraj.

Dodatak: Za one gladne života

A, ako ti sve ovo, gore, nije dovoljno cool jer ti želiš mijenjati svijet, biti svoj gazda, bože mi oprosti, kako da kažem:
Ti želiš biti poduzetnik!
Jednostavno te to pali.
Nećeš ti sad tu raditi tamo za nekoga, glupljeg, nesposobnijeg od sebe, onda je moja topla preporuka:
Počni učiti programiranje!

Zašto?
Prosto rečeno, ovakav je put, za poduzetnika u softverskoj industriji.
Po meni, ne mora biti točno, mada znam da jeste i imam par dokaza, OK, OK,… par primjera iz vlastitog življenja:

1. Naučiš programirati.

2. Zaposliš se u nekoj softverskoj tvrtki koja radi proizvode za svjetsko tržište.
Idemo još jednom, nemoj se zeznuti:
Poželjno je da ta tvrtka radi proizvode a ne projekte po narudžbi i da radi za svjetsko tržište.
Ne BIH ,Srbija i sl, regionalne baze i fore za lokalne medije.
Mora bit US, i dodatno eventualno EU i ništa ispod toga.
Subjektivan sam, štaću.

3.
Radiš tamo i učiš ne od kolega programiranje, ‘ebalo te programiranje više, to si prošao, to znaš, već gledaš što osnivači tvrtke rade i kako razmišljaju.
Ne gledaš i ne učiš od direktora kojega su oni tu postavili.
Pljucaj kao i ostali zaposleni po osnivačima, ekipa si, uklopi se, e, a kad svi odu, ostani iza posla, da vidiš što i kako gazde rade jer oni ostaju.
To poslije posla je najvažnije i najkorisnije.
Tijekom radnog vremena su se bavili zaposlenicima (“HR managment”, glup posao…), a kasnije su: poduzetnici.
Nudi im se da probaš raditi sve što i oni rade.

Ti si tamo da:
šegrtuješ!

Danas ne postoji faks koji te može naučiti kako biti poduzetnik.
To se: šegrtuje!

4. Kad misliš da si skužio što i kako i zašto, dok si još tamo, počni svoj “side product”, nešto sa strane, pa ako krene, otkaz i pravac RadimSexyStoVolim d.o.o.

Ostani udobre sa osnivačima. To su ti sad kolege.
Njima ćeš prvima plakati i pitati za savjet kad ti opetovano propadne JobJob2 d.o.o.
Njima ćeš se prvima kurčiti kad ti uspije UberJob Inc.

Linkovi:

 

web-code

Kako naučiti programirati danas?

Kako i od kuda krenuti učiti programirati? Koji programski jezik i alate odabrati a koje ne.

Ovdje se nalazi popis “resursa” nastao iz mojih razgovora ovih dana, na temu kako ući u svijet programiranja bez ikakvog predznanja, pa dalje, da se napravi nešto konkretno i upotrebljivo za druge i dalje prema “profi” radu.

Ukratko

Codecademy: ”Learn core programming concepts by doing”

  •  to je trenutno najbolje mjesto za početak, uči se programirati po konceptu “learn by doing”
  •  tu naučiti Javascript, HTML i CSS
  •  ne trošiti vrijeme na učenje PHP, Python a pogotovo ne Ruby i sve ostalo
  •  imaju i lekcije za cijeli “Web Developer Skills” kao i kako se povezati sa: “popular APIs to make your own applications” radi motivacije za zagristi dublje i nešto konkretno napraviti.
  • koristi JSFiddle kao online javni IDE (editor) za HTML, CSS, JavaScript, pravljanje malih online aplikacija i dijeljenje istih s drugim kao i za suradnju sa drugima na svom kodu.

I to je to za naučiti programirati u programskom jeziku interneta (JavaScript) i upoznati se sa web tehnologijom.

Korak dalje (za napredne):

Nakon naučenih osnova programerskih koraka potrebno je pametno odabrati “radnu/developersku okolinu” da bi se moglo nešto i napraviti.
Developerski svijet je “tehnološki” dosta raznolik i u stalnom turbulentnom razvoju.
Pogrešno odabrani alat, razvojna okolina često znači “izgubljeno vrijeme”.

Sljedi niz preporuka:

Node.js:
  • “runtime environment” (programski jezik JavaScript) za serversku stranu (platform for building applications) – pojednostavljeno: ono za programiranje “aplikacije” koja se vrti na serveru
  • velika zajednica, rast popularnosti Node.js, jednostavnost, … big plus
  • How do I get started with Node.js:

MongoDB:

  • “document-oriented database” aka NOSQL , Server-side JavaScript execution
  • iskustvo s MongoDB mi je jako pozitivno, uopće ne znam da ta DB postoji u mojim aplikacijama, jednostavno radi!

Sve ovo gore navedeno do sada, Node.JS, MongoDB, client side (web browser) ima nešto zajedničko, a to je JavaScript kao programski jezik.

JavaScript kao programski jezik weba se protegnuo i na serversku stranu aplikacija i na database.
Stoga je to trenutno najbolja investicija za učenje programskog jezika kako za početak ulaska u svijet software developmenta tako i za napraviti veliki skalabilni proizvod.
MongoDB je 4. po popularnosti u svijetu baza podataka a Javascript isto grabi prema vrhu.

U slučaju potrebe izbora “strong typing” programerskog jezika tu su C Sharp i Java, po meni jedino smisleni izbor.

Resursi za pomoć u učenju i radu:

Mozilla Developer Network

Kao referenca za web tehnologije, mjesto gdje ćete tražiti objašnjenja pojedine funkcionalnosti (JS, HTML5, CSS,…), dosta bolje nego w3schools ili po PDF knjigama po webu ili web sitovima .

GitHub:

  • Web-based Git repository hosting service  - praktički glavno mjesto na Internetu gdje sad svi stavljaju svoj open soruce kod. Od početnika do velikih tvrtki
  • tu programer provede većinu svog vremena u traženju odgovarajućih modula
  • potrebno je steći određenu vještinu u odabiru koji i čiji kod uzeti i ubaciti ga u svoj: minimalno par stotina zvjezdica, jaka zajednica, relativno nedavno ubačen novi kod.. itd..
  • popis koji je repozitorij najpopularniji
  • Git kao “revision control system” , ono gdje ćeš držati svoj “soruce code” i dijeliti ga s kolegama… danas najbolji izbor

Visual Studio

Za ostale editorske programerske zadatke koristan je Notepad++ –  tekst editor za svakodnevnu upotrebu. Ja ga koristi za svu dokumentaciju u txt, zapisivanje zadataka i sl. 

“Frameworks” koji dosta olakšavaju “programiranje”:

  • AngularJS – Javascript must framework – čudo deklarativnog programiranja ;) – nešto što se prije radilo mjesec dana sad se uradi u desetak minuta!
  • Bootstrap - “client front end framework” je definitivno ono sto u 95% slučajeva trebaš za napraviti ljusku web stranice
  • JQuery –  za rješavati sve ono što sa AngularJS ne uspiješ uraditi.

Razni informacijski resursi:

  • Stackoverflow - mjesto sa najtočnijim odgovorima za programere, systemsce i sl. Strogo je regulirano, boduje se sve,..  Nije loše otvoriti “account” na Stackoverflow i umjesto da se gubi vrijeme na Googlanje “nerješivog” problema okolo postavljati pitanja tamo. Otvaranje “accounta” na Stackoverflow, GitHub i sličnim web stranicama gdje se skupljaju “ljudi od struke” pomalo  se pametno gradi svoj “brand” u struci.
  • Hacker News  - praćenje vijesti oko “software development”, IT i šire 
  • Redditmust ”forum” za *svašta*, a oko ove teme za učiti programirati , općenito ili konkretno npr. JavaScript subreddit

Fullstack JavaScript platform

Za one koji se ne žele previše gnjaviti sa podešavanjem  i povezivanjem “alata” i “servera” da bi počeli sa programiranjem na vlastitom računalu postoji cijela paleta već pripremljenih “paketa” koji im nekom čarolijom sve to “podešeno”.

P.S.
Ako vas zanimaju ovakve teme i teme pokretanja vlastitog “businessa” u softverskoj industriji možete pratiti moje objave linkova/resoursa koji su mi korisni u svakodnevnom razvoju softverskih proizvoda na Facebook page BootstrapGo.

Osobni blog o temama kojima se svakodnevno bavim …