Помогите выбрать язык программирования
Пробовал много разных языков, из всей той кучи понравились C, C++, C# и Java. Больше всего C++ и C#, но пока остановился на плюсах. Постоянно мучает вопрос подходящий ли язык я выбрал.
Интересует разработка чего нибудь, связанная с обработкой данных, сетями, управлением, ИИ, железом контроллеры всякие(но врядли у нас такое востребовано). Игрушки не интересны, мобильные приложения тоже не интересны, web интересен если только серверная часть(дизайн не мой конек). На данный момент учусь в институте на программиста. Знания по английскому и математике очень слабые, исправляю и первое и второе, но вряд-ли получится стать крутым математиком, есть некоторые знания в области электроники. Выезжать врядли куда то буду, поэтому интересует что здесь будет востребовано. Какой язык, какие технологии, какая сфера? Какой язык вы бы посоветовали вторым, дополнительным?
Что почитать по тому языку и технологиям которые вы посоветуете?
И если можно аргументируйте свой совет.
В избранное В избранном 0
137 комментариевя записал видео в котором разобрал, чем отличаются языки программирования. youtu.be/TSy3eMisB8s
Пишите комментарии, как улучшить видео!
всем спасибо за советы, остановился на Си и урезанном варианте С++, взял старт на программировании микроконтроллеров
Старт будет очень долгим, мучительным, и без английского никуда.
Спустя полтора года?)
Может я ошибаюсь, но просмотрев разные рейтинги ЯП, вакансии, где можно пройти стажировку, интернатуру, то пришел к следующему выводу Java, С++. Java в рейтингах держит первое место на протяжении многих лет, на джуна вакансии есть, правда мало, есть интернатура. С++ мне кажется был, есть и будет. Много вариантов интернатуры и стажировки, вакансий примерно как в Java.C# нравится но это майкрософт, а у них 7 пятниц на неделю и что будет дальше с ним не знаю, Java наверное в этом плане стабильна.
Что скажете по этому поводу? Java норм выбор в моем случае?Какой минимальный элементарный набор технологий должен знать начинающий Java разработчик(сети, серверная часть, предприятие) и С++ разработчик(десктоп, что то низкоуровневое)?
Как раз стабильнее С #, хотя и 7 пятниц на неделе. За этой платформой мега корпорация. За джавой кто? Oracle? Они не первый год по слухам грозятся перестать разрабатывать джаву. Им это не интересно. За Spring кто? Pivotal Software? За Hibernate- JBoss? За Maven- Sonatype? А у майков все в пределах единой экосистемы, хотя и не без сложностей.
Хоть не фанат яви — но забули такі компанії як IBM , Google, RedHat.
Я писал -не о тех, кто используют джаву, а о тех кто разрабатывает ее куски и ее инфраструктуру. Это разные компании.
IBM досить таки jdk розробляє, як і остальні компанії OpenJDK та супутні бібліотеки класів.В старі часи їх jdk навіть було досить популярне як альтернатива сановському. Ще окремо розробляла BEA Systems но їх варіант поглинутий ораклом. Та й гугл в останніх версіях андроїда на стандартну jdk переходить.
Я вам не том, я не о том, что компании неизвестные, а о том, что они разные, не все в одних руках..jdk- это хорошо, а фреймворки? В Микрософте все в одних руках..Это и плюс, и минус, но в плане единой экосистемы- все таки плюс.
ну так те що в різних руках то й добре — кожен займається своїм. А то ось були в руках Мікрософта Visual FoxPro, Silverlight .
У С/С++ очень обширная область, и нельзя сказать, что именно надо. Да и часто берут без соответствующего опыта, за мозги.
Что надо на 80% вакансий:— multithreading— design patterns— optimizations— algorithms (спрашивать будут везде, но на практике очень редко надо)
На 60%:— networking— linux— STL— C++11/14/17— embedded (low RAM/ROM/CPU/no STL)
На 40%:— gamedev— QT— Boost— linux kernel (device drivers)— hardware— SQL— backend— assembler— build systems (makefiles, cmake)
На 20%:— DSP— Video streaming/processing/codecs— Machine learning— Computer vision
Основные направления (каждое со своими скиллами):* embedded — networking — linux* backend — high-load — SQL* computer vision — video processing* desktop — windows* embedded — automotive — multimedia — linux — QT* gamedev — high load
Java — это смотря на кого хочешь. если на мобильного разраба, то знать основные тонкости программирования под андроид (API, Android Studio, etc), если кровавый энтерпрайз — то там уже что-то свое (с андроидной джавой скорее всего никак не связанное).
С++ — если в геймдев, то наверное надо знать что-то из разряда Vulcan, OpenGL, DirectX, Unreal Engine, и т.п.? если десктоп — то какое-нибудь Qt (или GTK или др. GUI) или что-то вроде того.
а что там с ним будет? — .NET Core, Unity 3D, ASP.NET, Xamarin — вроде как никуда исчезать не собираются. а по-моему даже наоборот.
если идти в андроид-ращзработку — то джава естесно идеальный выбор, если в кровавый джава-энтерпрайз, то наверное это будет проблематично новичку туда протиснуться (я так думаю).. А так джава в ближайшее время вряд ли потеряет в актуальности — так что выбор джавы вполне норм.
А почему не Руби советуете?) Для веба рельсы лучше, имхо- больше функционала, больше гемов на все случаи жизни. Девопсы используют и тот и тот язык. Или в расчете, что с Питоном потом можно еще и уйти в ML или Data Science? Больше выбора путей)
Поэтому мне и интересно услышать мнение тимлида по руби он рейльс, почему она советует питон, как первый язык. Это похожие языки, но руби изящнее, имхо.Из-за отступов что ли?)
Специфичные знания, это какие?
Язык не имеет значения, имеет значение — задача. Machine learning — python(tensorflow, numpy, . , theano). BigData — Java, Scala, . Performance sensitive (Image Processing, 3D, . else) — C++. Платформозависимое . платформо-независимое. если с математикой плохо, то тут нужно что-то высокоуровневое наверное. Мировая практика давно ушла от языка, используют то что более гибкое и мощное (как интсрумент) для поставленой задачи.
Тенденции такие: GUI на Электроне, для веба ПХП и джаваскрипт, а для серверсайда — Java.
PS. а контейнеры на Go.
Что такое электрон?
javascript — 100% будет востребован, в т.ч. и здесь.
Ну или любой язык, компилируемый в джаваскрипт (TypeScript или Elm например).
ну джаваскрипт счас везде суют — и в серверную часть (node.js), и в десктоп (electron, nw.js) и в мобайл (react native / native script, phonegap/cordova), и даже во всякий эмбедед (например, www.espruino.com ) и интернет вещей (например, iotjs.net).
Marijn Haverbeke «Выразительный JavaScript» (Eloquent java script).
в том смысле, что не хочется касаться джаваскрипта, то
Либо Python, на котором можно писать почти под все что угодно, за исключением браузера (хотя и там есть трансляторы из питона в джаваскрипт) и мобайла (хотя и там есть пара фреймворков типа kivy, на которых вполне можно под мобилки что-то ваять на питоне),либо (внезапно) какую-нить функциональщину (OCaml, common lisp/clojure, Erlang/Elixir, Haskell, F# и все такое), ибо функциональщина по-моему потихоньку стоновится все более востребованной, и если ты шаришь, то какая-то контора, которая использует такой язык (фейсбук например, где насколько знаю OCaml юзают), рано или позно тебя с руками и ногами оторвет. :)
Тут вопрос о том, -рано ли поздно?А кущать хочицо
>>Интересует разработка чего нибудь, связанная с обработкой данных, сетями, управлением, ИИ, . web интересен если только серверная частьPython же! А английский — привыкни его слушать/читать/проговаривать каждый день — и со временем прийдет.
Каждый свое болото хвалит) Если не воротит от веба, то берите PHP/JS. С поиском роботы или интересных проектов, проблем не будет.
Значит или ты не лягушка, или С++ не болото :)
После таких слов выбор очевиден, C++ :)
Выбрала С++, интерес к девушкам не уменьшился, не ври :D
Шо ж тебя мой гендер так волнует?
Не знаю даже, как тебе сообщить, что я вполне себе ещё и гетеросексуальная девушка, а не трансгендер.Работу в итоге нашла не на плюсах, кстати. Но буду пробовать на плюсы перепрыгнуть всё равно.
ну хер его знает, как ты это так понял :D
Гетеросексуáльность (от греч. έτερος — другой + лат. sexus — пол) — эмоциональное, романтическое (платоническое), эротическое (чувственное) либо половое влечение к лицам противоположного пола.
Юношей уже не надо, я слишком стара, мужчин, пожалуйста)
Женились бы, наплодили бы детишек, я бы их утром в садик, сама на работу, а ты дома пивко попивал бы, а я потом их забрала, покормила, уроки сделала, ужин тебе приготовила, за свежим пивком в магаз сбегала, ах, ЛЯПОТААААА
Зато бесплатный менторинг по С++ и распознаванию образов)
А ислам не спасет отца русской демократии? Сразу три свободных слота, женись себе дальше. :)
А можно моим мнением поинтересоваться, пожалуйста? :D
Не-не, это я про условие, как грицца, необходимое, но недостаточное. Чисто «техническое» решение чисто «технической» проблемы :)
Я отвечаю тебе на сообщения, а ты их правишь и дописываешь потом телеги!) так нечестно
Ну ещё и ты туда?? И так каждый раз, когда Витя пишет, страдаю. Это просто как серпом по моим несуществующим яйцам. Теперь вообще буду ночами рыдать в подушку и чувствовать себя неполноценной :(
Блин, только что вернулась от одной из доучанок) так что теперь даже не знаю
Надеюсь, вы хорошо провели время :)
Лучше всех, как всегда)
:) пускай всегда так и будет :)
Та не, там традиционный набор тараканов. Обычно так говорят те, у кого не было девушки плюсовика.
Вы как-то неприлично прямо к С# идти хотите. Поколение ваших родителей шло примерно так: VB, Pascal, Delphy, C++, ASP, PHP, Perl, ColdFusion, JavaScript, T(PL)-QSL, Java, а уже потом — C#.Если серьезно, Вам щас напишут «английский» и алгоритмический.Потому что это пережевывалось миллион раз, а Вы потом еще раз пять язык и технологии поменяете. Не в языке дело. А в подходе и том, в каких компаниях Вы будете работать.
Слишком большой список пожеланий для варианта выбора одного языка)).
Haskell уже советовали?
Боюсь автор не присядит со штангой=)
Go -> C -> C# -> C++ -> Java Будешь знать все эти языки, будешь зарабатывать суммы с 6 нулями в год
Достаточно знать только названия? (шутка)
ну если речь о гривнах, то да
а почему после С идет С#, а не С++
Ведь в статьях для новичков пишут, что шарп — это аналогия на тему Java от MS. И после одного проще осваивать второй
Вы знаете идеально какой-то из этих языков? А кого-то, кто идеально знает?
Никакой язык нельзя знать идеально. Ни программирования, даже английский, даже русский..Можно лишь его чувствовать и более-менее выражать свои идеи..
Бери Go. Вон JetBrains вже IDE навіть доробляє для цього чуда (там навіть конкурс на назву IDE проводиться)
Для начинающих C++ не подходит.1. Вначале нужно искать проекты, и на старте те что ты найдешь можно реализовать гораздо быстрее с помощью других языков (Delphi, Python, и прочие).2. Если это не компания со своими технологиями то в основном люди будут готовы заплатить за решение а не за используемый язык.3. Чтоб реализовать этот язык в полной мере нужно обращать внимание на эго низкоуровневость, а там и математика и написания драйверов.
Java1. Очень хорош, но здесь либо в компании где у каждого своя задача, или ты сам, клиент, сервер, иногда дизайн. (Android)2. Можно программировать различное оборудование, важна точность.3. Java (Spring Boot) — создание веб приложений. (распространено за рубежом).4. Возможность публикации приложений на Google Play (Android, хорошо для тебя и твоих идей).5. Переходить к нему лучше не сразу.
Обрати внимание на JavaScript:1. Google apps script — идеально для собственных експериментов и решения задач автоматизации, упрощеное общения с сервисами Google позволит решить множество тематических задач (язык JavaScript с вставками от Google).2. Расширения к браузеру (язык JavaScript и вставки браузеров вместе с декларированной структурой проекта).3. Помимо клиентской части обьединяет в себе серверную часть в виде различных Фреймворков.4. С ним можно писать под Android.5. Возможность публикации в интернет магазине.
Все что связанно с приложениями под пк не дадут тебе возможности сделать свое популярное приложение так как нет достаточно раскрученных площадок сбыта. Window App Store новый и не продает класические приложения. В основном для расрутки создают свои сайты, тратят деньги на рекламу.