С кой език да започна
Здравейте, аз съм напълно начинаещ и искам съвет. С кой език да започна да се уча. Благодаря
Здравейте, аз съм напълно начинаещ и искам съвет. С кой език да започна да се уча. Благодаря
https://www.youtube.com/watch?v=kqRpvvmtXKI
Няколко са факторите от които трябва да зависи изборът ти. Единият е какъв вид проблеми искаш да решаваш чрез програмиране. С Джава напр. можеш да правиш адски много неща, но реално е подходящ език само за някои случаи.
Вторият фактор е дали има работа за този език. Четирите езици, които се изучават в Софтуни са от най-търсените в България като Python е малко назад (по мой наблюдения), но се очаква търсенето да се повиши та даже и да задмине другите езици.
Третият е типът фирма, в която искаш да работиш. Джава е избор на по-едри компании по принцип и атмосферата в големите компании е по-различна от тази в малките и средните. Това може да е плюс, може и да е минус - зависи от конкретния човек.
Четвъртият е дали езикът има бъдеще. И четирите езика изглеждат добре в това отношение.
Сигурно има и други фактори, но за тези се сещам в момента. Лично съм си фен на Джава като за първи език, защото е доста стар и какъвто и проблем да удариш - в нета ще има решение. Строго типизиран е (трябва да се указва типът данни на променливите), което те задължава да научиш типовете данни, а това са си важни знания. Класически обектно ориентиран е и като такъв позволява групиране на данни и програмна логика, което пък от своя страна отключва интересни възможности и улеснява писането на по-големи приложения. Описателен език е, което означава по-голяма амортизация на клавиатурата, но пък в по-голяма степен усещаш през какви процеси минава една класическа програма, за да изпълни магията си. И като за последно имаш възможност да ползваш средата за разработка IntelliJ - доста е приятна и е разработена от хора, които са създали куп други среди за други езици та даже са си създали и собствен програмен език - Kotlin, който е разпознат от Google като най-добрия език за писане на Android приложения.
Всеки език е правилен избор. Най-правилният избор обаче зависи от твоите предпочитания. Като ако случайно в по-късен момент се усетиш че искаш да минеш на друг език, това няма да е проблем. Стига да си се научил да мислиш като програмист учейки първия си език.
Започни със C базиран език - Java, JavaScript, C#, Python, Ruby, Go, няма голямо значение. Основите са еднакви навсякъде, а ако решиш да се прехвърлиш на друг език, не е трудно. Лично предпочитам C# и други строго типизирани езици т.к. са по... стриктни от гледна точка на това, какво можеш да напишеш, но това е базирано на лично предпочитание.
Препоръчвам ти да избягваш по-функционалните езици като Haskell, LISP, Clojure, etc. за пръв език т.к. са малко по-трудни за разбиране.
JavaScript за първи език не е ОК.
чисто теоритично защо не? Все едно да кажеш че python не е ок за първи език...
това че са скриптови не ги прави лоши. Дори са доста по- лесни за започване докато learning curve-a при типизираните е доста по - голям. js се учи на добро ниво за около 3 месеца + един от популярните frameworks. За тея три месеца с типизиран език няма да му стигне да разбере само какво са обектите интерфейсите и кое и защо при тях, не споменаваме data structures generics events и тн че ще стане още по - страшно.
Това че много хора пишат js без да разбират какво правят е отделна тема, но не е проблем това на софтуни, телерик или България а на индустрията като цяло. Такъв код гледам сега на едни белгийци от проект награден за innovation of the year 2019, чак трябва да обеснявам на 2мата нови junior който обучавам да приемат всичко като antipattern тъжна история.
Python е ОК за първи език.
Точно java е най-кофти от 4те не се развива не се модернизира достатъчно бързо. Оракъл вървят обратно на мс и не се отварят а дори направиха java ee платена.
Докато c# наистина може да правиш всичко от vr, games,web,iot,ml,ai,bots каквото се сетиш. Ако искаш да го правиш това с java трябва да учиш примерно kotlin scala... общо взето тъжна история. И има всички предимства и много повече който описваш за java.
За съжаления да от js скоро няма да се избяга поне в близките 10тина години докато web asembly не стане enterprise ready.
Но js дори на моменти е забавен и за рисуване на неща в browser-a ако знаеш какво става става бързо.
python - за iot mashine learning scripting наистина е номер едно в момента, но django е доста слабо. Но ако искаш да се занимаваш с big data ai iot това е избора, и другите езици имат какво да предложат но в момента python е наи-силен там. Но за ai трябва и доста математика, макар че са го направили доста лесно всичко е скрито под методи но ако искаш да знаеш какво става отдолу вече няма как.
OracleJdk е платена. OpenJdk (което е предостатъчно за учебни цели) е безплатна и ще остане безплатна. Двете са едни и същи на релийз, но платената версия се поддържа с чести ъпдейти от Oracle. И тъй като предимно големи компании ползват платената версия, парите не са проблем.
Колкото до IoT нещо не мога да намеря търсени позиции в jobs.bg с изискване за програмен език и IoT. Само две обяви за Java и C/C++. Но като съм бил по кариерни форуми и съм си говорил с представители на Bosch (които май са водещи в IoT технологиите), са ми казвали че си търсят Java програмисти за IoT проекти. Така че явно до някаква степен Java става като решение за такъв вид проблеми.
Не знам за бързината на модернизиране на езика. Сега си гледам структури от данни и не следя новостите, но и от други хора съм чувал че изостава в това отношение.
И да - за гейминг, VR, ИИ Джава не става. Minecraft е единственото по-известно изключение за игра, създадена на Java.
Бош са като prosieben явно, имат java програмисти и затова са избрали java. Единственото интересно ново нещо в света на java. Идва от redhat и новия quarkus алтернативата на spring. А за иот повечето проекти и frameworks са python дори нашия проект за умен град, реализиран на няколко места в страната вече е базиран на python.
Ако развият quarkus да стане като .net core self sustain инсталация и олекотят jvm и тн как работи. Може би ще стане.
Но честно казано в момента няма нещо което да бие python за iot. native на линукс среда пускаш скрипта и работи. дори hamarin react native ами не успяват да постигнат същото близо са, и бих ползвал тях защото са ми познати и всеки ден работя с c# и js. Докато python ми е хоби и не познавам скритите особености на езика толкова добре., но ако реша да правя нещо сериозно като iot ще е python 1000%