» »

Nadgradnja znanja v programiranju - kaj, kako

Nadgradnja znanja v programiranju - kaj, kako

PrimoZ_ ::

Trenutno imam osnovno znanje programiranja in sicer razumem koncepte ter poznam standardne konstrukte kot so zanke, pogojni stavki, razrede, objekte, strukture, kazalce, ...

Do sedaj sem delal v oz. bolje rečeno preizkušal sledeče jezike in okolja:
C (text editor + gcc v konzoli)
Delphi (RAD studio 2007, Lazarus 1.4)
Python (Python 2.7 + PyScripter)
Java (že pred časom, Java 5 + Netbeans IDE)
C# (že pred časom VS 2008, C# 3.0 in WinForms)
PHP (Aptana studio)
JS (Aptana studio)

- Web development me ne prepriča, sem poskušal tako PHP kot Python z različnimi frameworki in se mi res ne dopade vsa ta mineštra z php/python + frameworki na serverju, JS+frameworki na clientu + html in css.
- Klasični desktop programi v Delphiju oz. C# + WinForms to mi je blo všeč samo se mi zdi da je to izumirajoče področje
- Mobile development se mi zdi trenutno najbol zanimiv je pa nekaj problemv z razdrobljenostjo med iOS in Android (+ WP in BB kot bolj nišni platformi)
- razni embeded sistemi bolj v smislu Rasbery Pie in podobnih, tudi to se mi zdi zanimivo
- ...

V vsej tej množici jezikov, orodij, frameworkov in področij pa sem sedaj obstal kar malo izgubljen na kaj se osredotočit saj je enostavno vsega preveč.

V mislim imam trenutno da bi se osredotočil na sledeče:
- C# za katerega se mi zdi da v zadnjem času z odpiranjem prehiteva Javo na vseh področjih in se mi zdi da je uporaben tako za enostavne cmd aplikacije, GUI desktop aplikacije, mobile z uporabo xamarin, rasbery Pie in nasplošno linux z MONO ...
- Python za razno skriptanje + z dodatki kot so scipy, numpy, pyCUDA in množico drugih je splošno uporaben na mnogih področjih
- C zdi se mi dobro znati tudi nekaj low level zadev in računam da bi mi prav prišlo v navezi z Pythonom in CUDA


Se vam zdijo zgornja področja na katera bi se osredotočil smiselna ? In tudi komercialno zanimiva.
Zbiram tudi priporočila za knjige/web tutoriale za:
- napredno obravnavo Pythona
- napredno obravnavo C# verzij 4 in 5

Hvala za odgovore, upam da jih bo čim več. Se zavedam da je trenutko napisano zelo na široko ampak se bom trudil ažurno odgovarjati na dodatna vprašanja oz. dodatno razdelati vse skupaj.
  • razdelil iz: Mavrik ()

Invictus ::

Predvsem se navadi, da je povsod mineštra ...
"Life is hard; it's even harder when you're stupid."

http://goo.gl/2YuS2x

PrimoZ_ ::

Invictus je izjavil:

Predvsem se navadi, da je povsod mineštra ...

To drži, povsod je na voljo množica knjižic in frameworkov in potem povezava na razne baze podatkov, pa nevem kaj še vse. Ampak web development mi je bil od vsega še vedno najbol nerazumljiv in nepregleden.
Pa to niti ni poanta teme...

ZaphodBB ::

Clojure, Lisp, Haskell - če hočeš širiti obzorja na programerskem področju.

Sam trenutno delam na tem, da zaštekam transducerje.
"Naši dedje so se borili za to, da lahko odločamo
o lastni usodi - ne o usodi drugih ljudi." -jype

blackbfm ::

Ampak web development mi je bil od vsega še vedno najbol nerazumljiv in nepregleden.
Pa to niti ni poanta teme...


Ok nekatere stvari se ne da z webom elegantno izpeljat ampak se vedno je edini nacin da pokrijes shitload naprav hitro in v enem šusu.

technolog ::

*nekaterih stvari

PrimoZ_ ::

ZaphodBB je izjavil:

Clojure, Lisp, Haskell - če hočeš širiti obzorja na programerskem področju.

Sam trenutno delam na tem, da zaštekam transducerje.


Sem že študiral Prolog za katerega sem zvedel od kolega na FRI-ju (ko so se pogovarjali da jih mučijo z nekim čudnim jezikom) in mi je bila stvar zanimiva. Gledal sem tudi že malo F# in Scala ampak samo par tutorialov na hitro.
Trenutno je moje mnenje da bi se raje dobro naučil kak bolj "standarden" jezik ala Python in C#. V oba je v zadnjih verzija vključeno že precej konceptov iz funkcijskih jezikov in bi prvo zaobvaladal to. Sploh ker želim da je moje znanje tudi v praksi oz. komercialno zanimivo.

Za jezike kot so Haskell, Clojure, F#, ... se mi zdi da so trenutno omejeni na zelo ozke niše, dostikrat take kjer če želiš delati z njimi moraš imeti neko globoko znanje iz povsem druge domene. Torej da si kak akademik, raziskovalec, ... in delaš na specifičnem problemu in si zraven pomagaš z kakim funkcijskim jezikom.

Invictus ::

Učenje jezikov brez nekega konkretnega cilja s platformo in samim projektom je precej jalovo delo.

Škodi ne, ampak je bolje naštudirati nekaj od česar dobiš plačilo.
"Life is hard; it's even harder when you're stupid."

http://goo.gl/2YuS2x

noraguta ::

Invictus je izjavil:

Učenje jezikov brez nekega konkretnega cilja s platformo in samim projektom je precej jalovo delo.

Škodi ne, ampak je bolje naštudirati nekaj od česar dobiš plačilo.

ne gre vedno tako marsikateri koncept ne boš nikoli uporabil, če se ga nisi prej naučil. ali pa ga boš uporabil kot boilerplate zastopil ga boš pa bolj slabo, ali pa sploh ne. lep primer je cela generacija, ki štanca ene in iste vzorce v objektnem)design pattern), ne znajo in nočjo pa naredit preskoka na metaprogramiranje. Zabetonirani so v svoje tipe-objekte pojma pa nimajo kaj jim lahko mehanizmi teorije tipov sploh omogočijo.

3/4 jih v c# prebavi še delno generike potem se pa neha.
Pust' ot pobyedy k pobyedye vyedyot!

noraguta ::

Sicer pa ms press ma solidne knjige. https://www.microsoftpressstore.com/sto...
Pust' ot pobyedy k pobyedye vyedyot!

ZaphodBB ::


Sem že študiral Prolog za katerega sem zvedel od kolega na FRI-ju (ko so se pogovarjali da jih mučijo z nekim čudnim jezikom) in mi je bila stvar zanimiva. Gledal sem tudi že malo F# in Scala ampak samo par tutorialov na hitro.
Trenutno je moje mnenje da bi se raje dobro naučil kak bolj "standarden" jezik ala Python in C#. V oba je v zadnjih verzija vključeno že precej konceptov iz funkcijskih jezikov in bi prvo zaobvaladal to. Sploh ker želim da je moje znanje tudi v praksi oz. komercialno zanimivo.

Za jezike kot so Haskell, Clojure, F#, ... se mi zdi da so trenutno omejeni na zelo ozke niše, dostikrat take kjer če želiš delati z njimi moraš imeti neko globoko znanje iz povsem druge domene. Torej da si kak akademik, raziskovalec, ... in delaš na specifičnem problemu in si zraven pomagaš z kakim funkcijskim jezikom.

Funkcijski koncepti kot so imutabilnost, idempotenca, odsotnost stranskih efektov, kanali in protokoli so funkcijski koncepti, ki omogočajo lažji paralelizem. Jaz jih v praksi že kar pogosto uporabljam v distribuiranih sistemih. Prihajamo pa v dobo, ko bodo vsi sistemi informacijski sistemi distribuirani (osem in več jedrni telefoni,...).

Kar se praktične uporabnosti tiče - Erlang in Clojure sta fenomenalna jezika, ki sta nastala iz praktičnih in ne akademskih vzrokov. Uporabljata se v praksi - avtorja obeh sta (in še) delata z real time sistemi in pravita, da sta šla ta jezika razviti zato, ker nista dovolj pametna, da bi take probleme reševala z OOP pristopom.

Erlang ima odličen interop z C-jem. Clojure je pa po designu hosted language in je namenjen uporabi na drugih VM-jih (JavaScript, JVM, CRL) - kot tak je koristen, saj si lahko z njim olajšaš delo z OO jeziki.

Pa še to, spraševal si kako razširiti obzorja. Sicer je Invictus mnenja, da kar ne da šoldov ni nič vredno - kar je čisto legit stališče, za povprečnega profesionalca. Če pa ti je programiranje vsaj malo hobi (kar ti očitno je), pa ni nobenega razloga, da se ne bi ukvarjal tudi z zadevami, ki niso na prvo žogo komercialno koristne, ker ti dajo arhitekturno širino. Jaz sem iz funkcijskih jezikov pobral predvsem arhitekturne pristope in navdihe, kar mi zelo pomaga pri mojem delu z strankami.

Da tega, da se vsi najboljši programerji tako ali drugače ukvarjajo tudi z funkcijskim programiranjem niti ne omenjam. Torej, čeprav je clojure jobov manj - so boljši. In četudi ni nujno, da v praksi delaš s funkcijskimi jeziki - boš bolj dobrodošel v res dobrih ekipah, če boš imel to širino.

Edit: priporočam tudi tale video.
"Naši dedje so se borili za to, da lahko odločamo
o lastni usodi - ne o usodi drugih ljudi." -jype

Zgodovina sprememb…

  • spremenil: ZaphodBB ()

BigWhale ::

Invictus je izjavil:

Učenje jezikov brez nekega konkretnega cilja s platformo in samim projektom je precej jalovo delo.
Škodi ne, ampak je bolje naštudirati nekaj od česar dobiš plačilo.


Eh, traparija. Nastudirat se splaca tisto kar te veseli in zanima. Monetizacija znanja mora izhajati iz hobija, drugace gres v penzijo nesrecen, tecen in star.

PrimoZ_ ::

Tema je malo skrenila iz začetne smeri. Ni bilo mišljeno da bo zdaj tu debata o funkcijskih jezikih in specifičnih lastnostih.

Mavrik ::

Mavrik je premaknil sporočila v Transducerji v funkcijskih jezikih.

PrimoZ_ ::

@Mavrik
Hvala za premik nerelavantnega dela v novo temo.

Da ponovim začetno vprašanje, če je to smiselno oz. bi raje izbrali kaj drugega ?

- C# za katerega se mi zdi da v zadnjem času z odpiranjem prehiteva Javo na vseh področjih in se mi zdi da je uporaben tako za enostavne cmd aplikacije, GUI desktop aplikacije, mobile z uporabo xamarin, rasbery Pie in nasplošno linux z MONO ...
- Python za razno skriptanje + z dodatki kot so scipy, numpy, pyCUDA in množico drugih je splošno uporaben na mnogih področjih
- C zdi se mi dobro znati tudi nekaj low level zadev in računam da bi mi prav prišlo v navezi z Pythonom in CUDA


Se vam zdijo zgornja področja na katera bi se osredotočil smiselna ? In tudi komercialno zanimiva.
Zbiram tudi priporočila za knjige/web tutoriale za:
- napredno obravnavo Pythona
- napredno obravnavo C# verzij 4 in 5

technolog ::

Ne vem, kaj sploh hočeš vedet. Rekel si, da ponavljaš začetno vprašanje, a tvoj post ne vsebuje niti enega vprašanja, razen tega, če je tvoja izbira smiselna. Odgovor: JE. Praktično, karkoli boš izbral, bo ok.

Bolj kot je stvar razširjena, večja je šansa za dobro službo. Garantirano prej dobi službo dober PHP kot Haskell programer. Poleg PHPja je mainstream še Python, C++, C, Java, C#, JS.

C# je v redu, sploh v Evropi je blazno razširjen. Sedaj, ko ga imamo pa še za Linux, pa sploh ni več razloga, zakaj ne. Kar se mene tiče, imaš v redu nabor znanj.

Še to: Osnove weba se ti splača vedno zant. Se pravi HTTP protokol, HTTP glagoli, headerji, osnove HTML, CSS. Noben te ne sili v učenje JS frameworkov, za katere ravnokar poteka borba za prevlado in vlada totalen kaos. Obstaja neka pivska igra, da vsakdo reče eno besedo, in če obstaja vsaj ena knjižnica, ki je beseda + .js, piješ.

Zgodovina sprememb…

ragezor ::

Med skriptanjem in uporabo scipy v pythonu je kar velik razkorak. Ucenje APIjov ti bolj malo pomaga pri AI zadevah. Ce se hoces tega lotiti bos moral poglodati malce teorije najprej, odvisno tudi od tega kako napreden uporabnik znanstvenega stacka hoces biti.

Za napredno obravnavo Pythona je recimo primerna knjiga Effective Python. Ampak take knjige, ki obravnavajo zgolj jezik so malce tezke za prebavit, ce ne poznas problemskih domen.
Ena zelo fajna knjiga je meni osebno Foundations of Python Network Programming, ki ti predstavi IP, TCP in UDP, uporabo socketov in vse naprej do protokolov kot so HTTP, FTP, etc. Spoznal bos malce APIjov ampak kar je bolj pomembno se mi zdi, da se spoznas z vsemi koncepti, potem pa lahko dalje beres dokumentacijo. Skoda, da takih knjig ni vec (ali pa jih jaz ne poznam).

Ampak itak si rekel da te web development ne zanima kaj prevec (ceprav se bos v prihodnosti srecal z njim pa magari delas embedded oziroma karkoli). Pomoje ima razvijanje za telefone se najmanj "minestre" ampak se ne spoznam dovolj, da bi bil ziher.

Kar se tice komercialne zanimivosti pythona... hja, nevem. Zdi se mi, da se v slovenskem prostoru bolj malo uporablja torej sluzb ni dosti. Obenem pa je presenetljivo dosti folka aktivnega v python communityju, tako da mas dosti konkurence.

Poglej si malo okrog oglase za sluzbe. Najvec se mi zdi, da je web development z jeziki php, .net (c#), java in seveda javascript. Pa iOS in Android. Ampak slednja dva imata (kolikor vidim po oglasih) se posebej poudarek na obstojecem portfoliju. Embedded se mi tudi zdi, da je zadnje cajte v porastu, ampak se mi osebno zdi najmanj beginner friendly podrocje.

Moja perspektiva je perspektiva nekoga, ki iz faksa isce sluzbo in nima prijateljev in poznanstev v IT sferi. Bolj izkuseni ljudje, ki so vpeti v IT sfero imajo mogoce drugacne poglede in informacije o iskanju sluzb.

Zgodovina sprememb…

  • spremenil: ragezor ()

2f4u ::

Obujam tole... v katero smer si šel PrimoZ?

Zakaj vprašam?
Men se meša ob vsem različnem HWru od NXPja al pa TI al pa še kak drug ...
... kateri SW je najboljš za različne chipsete / ampak brez Smart* in UI?


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Kateri programski jezik?

Oddelek: Programiranje
494417 (3030) kopernik
»

Programski jezik za 13 letnika - NA NOVO? (strani: 1 2 )

Oddelek: Programiranje
9416533 (12978) blackbfm

Več podobnih tem