Имею возможность 3-4 часа в неделю посвятить самообучению. Решил учить какой-нибудь новый язык. Посоветуйте что-нибудь.
Требования: язык должен быть употребимым, ликвидным на рынке труда и в то же время не галимый мэйнстрим.
Далее перечень того с чем я работаю или работал и мой уровень оценки знания предмета чтобы не предлагать то что знаю хорошо, или наоборот предложить то что знаю плохо: ABL/4GL — уровень сеньора, очень большой опыт
C# — средний уровень
JavaScript — начинающий, или как пишут jQuery со словарем
PHP — занимался им до того как ООП в PHP стало модным, примерно тогда же и забросил
Python — писал скриптики несложные без ООП
C/C++ — ограничился академическим курсом + книга Страуструппа
Пока гляжу в сторону F# — интересный, необычный (для меня) но вот коммерчески употребим ли? Или python — вроде модный но не мэйнстрим, или мэйнстрим галимый? Erlang ни разу не мэйнстрим но коммерчески редок вроде в Росссии?
Здравствуйте, Mazenrab, Вы писали:
M>Привет.
M>Имею возможность 3-4 часа в неделю посвятить самообучению. Решил учить какой-нибудь новый язык. Посоветуйте что-нибудь. M>Требования: язык должен быть употребимым, ликвидным на рынке труда и в то же время не галимый мэйнстрим.
M>Пока гляжу в сторону F# — интересный, необычный (для меня) но вот коммерчески употребим ли? Или python — вроде модный но не мэйнстрим, или мэйнстрим галимый? Erlang ни разу не мэйнстрим но коммерчески редок вроде в Росссии?
M>Что-то еще?
Подойди с другого конца — найди более "коммерчески" выгодное предложение работодателя, узнай на каком языке они говорят, выучи его, и стань модным и мэйнстримовым, а не то останешся галимым лузером, который хочет стать "интересным и необычным F#".
Здравствуйте, Mazenrab, Вы писали:
M>Привет.
M>Имею возможность 3-4 часа в неделю посвятить самообучению. Решил учить какой-нибудь новый язык. Посоветуйте что-нибудь.
Японский, корейский, финский...
Здравствуйте, Mazenrab, Вы писали:
M>Имею возможность 3-4 часа в неделю посвятить самообучению. Решил учить какой-нибудь новый язык. Посоветуйте что-нибудь. M>Требования: язык должен быть употребимым, ликвидным на рынке труда и в то же время не галимый мэйнстрим.
Вот и я тоже задумлася об этом. Хочется что-то функцинальное для вёба и каких-то полускриптовых апплкух. Смотрю вот на Elixir, но после провальной попытки установить на вынь7 я больше склоняюсь что это какое-то поделие студента. Что думаете, чтоит Элексир того или нет?
Здравствуйте, SergeyIT, Вы писали:
SIT>Здравствуйте, Mazenrab, Вы писали:
M>>Что-то еще?
SIT> Можно вернуться к истокам — в кодах попрограммить, а затем на ассемблер перейти
ассемблер не мое, но сам по себе он весьма приятный и главное понятный (по крайней мере те диалекты что я видел)
Здравствуйте, gandjustas, Вы писали:
G>2) PL\SQL или T-SQL
Мне казалось что языки то простые, просто требуют знания нюансов платформы, чтобы их изучать надо сидеть на этой платформе крепко, поставить себе сервачок и учиться на Northwind по моему профанация.
G>3) Excel
VBScript? Или я совсем отстал от инноваций в офисе?
G>4) PowerShell или Bash
Нууу, такое...хотя полезно безусловно
G>5) R
Вот это интересно, спасибо что напомнил!
Все зависит от того чем будешь заниматься. Но знание Web технологий так или иначе нужно.
Поэтому посоветую TypeScript Angular 2, ES6
F# это функциональщина, хорошо развивает мозги.
С++ знать надо, что бы если понадобился меньше тратить на изучение.
и солнце б утром не вставало, когда бы не было меня
Здравствуйте, Serginio1, Вы писали:
S> Все зависит от того чем будешь заниматься. Но знание Web технологий так или иначе нужно.
Мне backend интереснее frontend'а.
S>Поэтому посоветую TypeScript Angular 2, ES6
Angular — это ж перехайпаный фреймворк просто, не?
S>С++ знать надо, что бы если понадобился меньше тратить на изучение.
Я знаю на уровне который для себя считаю достаточным. Если нужно написать что-то чего нет в ABL, я пишу на C++ dll и линкую. Большего мне от него не нужно. Писать проект на C++ я вряд ли когда-нибудь в здравом уме соберусь.
Здравствуйте, Mazenrab, Вы писали:
M>Здравствуйте, Serginio1, Вы писали:
S>> Все зависит от того чем будешь заниматься. Но знание Web технологий так или иначе нужно. M>Мне backend интереснее frontend'а.
S>>Поэтому посоветую TypeScript Angular 2, ES6 M>Angular — это ж перехайпаный фреймворк просто, не?
Angular 2 это аналог WPF. Во всяком мне нетчику так видится.
Мне его удобнее использовать для создания страниц.
ASP.NET Core, Angular 2, SignalR для чайников
S>>С++ знать надо, что бы если понадобился меньше тратить на изучение. M>Я знаю на уровне который для себя считаю достаточным. Если нужно написать что-то чего нет в ABL, я пишу на C++ dll и линкую. Большего мне от него не нужно. Писать проект на C++ я вряд ли когда-нибудь в здравом уме соберусь.
Здравствуйте, Mazenrab, Вы писали:
Pzz>>Тогда уж лучше Ocaml. По крайней мере, он к микрософту не привязан.
M>Посмотрю. F# мне понравился своей логичностью. Ну и в функциональной парадигме я не программил — это для меня вновь, интересно.
Насколько я понимаю, F# — это такой Ocaml от микрософта. Но проблема в том, что если микрософту надоест в него играть, он умрет на следующий день.
Pzz>>Go?
M>А чем гоу реально хорош если без рекламы?
Тем, что его можно выучить за несколько дней, и самому попробовать, так уж ли он хорош.
Здравствуйте, Pzz, Вы писали:
Pzz>Насколько я понимаю, F# — это такой Ocaml от микрософта.
F# это OCaml с человеческим лицом, хотя сам OCaml очень достойный, но грабли там сови есть, да.
Здравствуйте, Mazenrab, Вы писали:
M>Имею возможность 3-4 часа в неделю посвятить самообучению. Решил учить какой-нибудь новый язык. Посоветуйте что-нибудь. M>Требования: язык должен быть употребимым, ликвидным на рынке труда и в то же время не галимый мэйнстрим.
— простенькие нативные языки. Мэйнстрим: C, Go (только на серверах). Продвинутое: Rust (много пиара).
— сложные нативные языки. Мэйнстрим: C++, Swift (только в мирке Apple). Продвинутое: D (пытается пробиться к мейнстриму), OCaml, Nim.
— платформа JVM. Мэйнстрим: Java. Продвинутое: Scala (пытается пробиться к мейнстриму), Kotlin.
— платформа .Net. Мэйнстрим: C#. Продвинутое: F# (копия OCaml), Nemerle.
— скриптовые языки. Мэйнстрим: JS, Python, PHP (только веб). Продвинутое: TypeScript(распиаренная надстройка JS), Erlang/Elixir (только сервера), Clojure, Groovy.
— языки предметной области: SQL, Verilog/VHDL, R/SAS, MATLAB/Julia, Mathematica/Maple и ещё десятки других.
Естественно, что язык из последней строчки есть смысл выбирать только в том случае, если есть интересы в этой предметной области.
Здравствуйте, Mazenrab, Вы писали:
M>Здравствуйте, gandjustas, Вы писали:
G>>2) PL\SQL или T-SQL M>Мне казалось что языки то простые, просто требуют знания нюансов платформы, чтобы их изучать надо сидеть на этой платформе крепко, поставить себе сервачок и учиться на Northwind по моему профанация.
SQL это не только язык, но и оптимизация запросов и архитектура БД.
G>>3) Excel M>VBScript? Или я совсем отстал от инноваций в офисе?
В excel сейчас входят:
1) Формулы, особенное интересны финансовые и статистические
2) Плагины (допфункции) для статистического анализа
3) m для загрузки данных извне
4) DAX — язык для анализа данных (powerpivot aka datamodel)
5) Ну и vbscript
Это не считая штатных функций типа "поиск решения"
G>>4) PowerShell или Bash M>Нууу, такое...хотя полезно безусловно
Это архиважно на самом деле. Многие задачи можно решить в shell-script гораздо быстрее, чем в языке типа js\c#\java.
Здравствуйте, Kernan, Вы писали:
M>>Имею возможность 3-4 часа в неделю посвятить самообучению. Решил учить какой-нибудь новый язык. Посоветуйте что-нибудь. M>>Требования: язык должен быть употребимым, ликвидным на рынке труда и в то же время не галимый мэйнстрим. K>Вот и я тоже задумлася об этом. Хочется что-то функцинальное для вёба и каких-то полускриптовых апплкух. Смотрю вот на Elixir, но после провальной попытки установить на вынь7 я больше склоняюсь что это какое-то поделие студента. Что думаете, чтоит Элексир того или нет?
эрланго стек вообще плохо на винду ставится.
потому что винда и программирование — это два разных больших мира.
Здравствуйте, Mazenrab, Вы писали:
M>Привет.
M>Имею возможность 3-4 часа в неделю посвятить самообучению. Решил учить какой-нибудь новый язык. Посоветуйте что-нибудь. M>Требования: язык должен быть употребимым, ликвидным на рынке труда и в то же время не галимый мэйнстрим.
Настоящий программист на любом языке напишет программу на Фортране. (с)
Я раньше как-то не понимал этой фразы, но последнее время
мне пришлось заниматься чем-то большим, чем написание программок...
И таки понял, что язык — это настолько вспомогательная фигня...
Представь себе, что ты одновременно пишешь на пяти языках.
Представил? Вот этим я сейчас занимаюсь.
Здравствуйте, neFormal, Вы писали:
F>эрланго стек вообще плохо на винду ставится. F>потому что винда и программирование — это два разных больших мира.
Видимо так. С другой стороны у меня же есть виртуалка в которой можно развлекаться.
Здравствуйте, alex_public, Вы писали:
_>- языки предметной области: SQL, Verilog/VHDL, R/SAS, MATLAB/Julia, Mathematica/Maple и ещё десятки других. _>Естественно, что язык из последней строчки есть смысл выбирать только в том случае, если есть интересы в этой предметной области.
Verilog — да, крутецки расширяет сознание. Программирование на уровне, более низком, чем машинные коды.
Здравствуйте, Voblin, Вы писали:
_>>- языки предметной области: SQL, Verilog/VHDL, R/SAS, MATLAB/Julia, Mathematica/Maple и ещё десятки других. _>>Естественно, что язык из последней строчки есть смысл выбирать только в том случае, если есть интересы в этой предметной области. V>Verilog — да, крутецки расширяет сознание. Программирование на уровне, более низком, чем машинные коды.
Угу, а с учётом имеющихся сейчас в наличие дешёвых FPGA можно ещё и насладиться воплощение результата в железе. ) Кстати здесь http://rsdn.org/forum/diy не мало обсуждений на эту тему. )
A>Представь себе, что ты одновременно пишешь на пяти языках. A>Представил?
Не очень. Пишешь ты значит на F* (1), который при помощи компилятора OCaml (2) переводится в F# (3), генерирование кода F* ты проводишь при помощи языка (4) спецификации Antrlr, который на Java (5). И это какой-нибудь серверный код, выдающий через Rest (6) какую-нибудь web-assembly (7, ну или ещё тут что-нибудь типа Silverlight или TypeScript) управляемую из JavaScript (8). Это всё обращается к БД на языках SQL (9) и MDX (10) по протоколу TDS, чтобы частично выполниться в хранимых процедурах, коммандлетах и скриптах (11) PowerShell
Всё так?
Здравствуйте, Arsen.Shnurkov, Вы писали:
A>>Представь себе, что ты одновременно пишешь на пяти языках. A>>Представил?
AS>Не очень. Пишешь ты значит на F* (1), который при помощи компилятора OCaml (2) переводится в F# (3), генерирование кода F* ты проводишь при помощи языка (4) спецификации Antrlr, который на Java (5). И это какой-нибудь серверный код, выдающий через Rest (6) какую-нибудь web-assembly (7, ну или ещё тут что-нибудь типа Silverlight или TypeScript) управляемую из JavaScript (8). Это всё обращается к БД на языках SQL (9) и MDX (10) по протоколу TDS, чтобы частично выполниться в хранимых процедурах, коммандлетах и скриптах (11) PowerShell AS>Всё так?
Ну, я работаю в другой области. Мы производим терминальные решения.
Терминал — это компьютер со специализированной ОС (перепиленный Линукс).
1) Большинство программ написано на С/С++
2) Достаточно большое количество программ написано на Питон.
3) Поскольку это Линукс, значит там много bash-скриптов.
4) Кое-где (редко) встречается Перл.
5) Кое-где (редко) встречается богопротивная Ява.
6) Поскольку часто приходится править Makefile, то нужно знать язык этих самых Makefile.
7) Поскольку все это собирается с помощью системы yocto, нужно знать язык рецептов этой самой yocto
Даже больше пяти языков получилось.
Нельзя сказать, что я на всём этом пишу. Но если где-то что-то отвалилось, то поправить должен я.
Здравствуйте, alpha21264, Вы писали:
A>Нельзя сказать, что я на всём этом пишу. Но если где-то что-то отвалилось, то поправить должен я. A>
О, чем-то похоже. У меня основная работа ABL + C#, немного фронтэнда это JavaScript, плюс если что-то нужно от ABL то это это С/С++ в виде библиотек, плюс поддержка сторонних проектов разной степени извращенности PHP,Python,SQL, T-SQL.
Здравствуйте, Mazenrab, Вы писали:
M>Решил учить какой-нибудь новый язык. Посоветуйте что-нибудь.
Всем спасибо за советы, решил для себя вопрос так — для работы буду продвигать свои скилы в javascript технологиях + Angular 2, для души оставлю F# — функциональщина интересна именно своей парадигмой + лично мне не нужно заморачиваться со стэком.
Здравствуйте, Mazenrab, Вы писали:
M>P.S. M>Странно что Prolog никто не пососветовал
Prolog и Lisp — это два языка, которые просто необходимо знать (хотя бы как концепцию) любому программисту в рамках общего образования. Однако прямое их применение в изначальном древнем виде мало где полезно. А вот различных их наследники в этой теме вполне были перечислены (Эрланг имеет синтаксис Пролога, а Clojure — вообще является диалектом Лиспа).
Здравствуйте, Mazenrab, Вы писали:
M>P.S. M>Странно что Prolog никто не пососветовал
по нему современную книжку трудно найти. да и компилеры со своими причудами.
есть иные более свежие варианты типа kanren.
но зачем поклоннику жалкоскрипта советовать годноту?
Здравствуйте, Voblin, Вы писали:
V>Verilog — да, крутецки расширяет сознание. Программирование на уровне, более низком, чем машинные коды.
Это совсем не программирование в привычном его понимании. Хотя есть определённая концептуальная схожесть с "классическими" шейдерными языками под GPU и прочими массивно-параллельными средами, только, если можно так сказать, в вырожденном виде (в шейдерах всё же подразумевается последовательность действий, в то время как в железе всё происходит одновременно).
По крайней мере я заметил, что товарищи, имеющие опыт работы с массивно-параллельными системами, осваивают Верилог et al. намного быстрее и успешнее. "Классическим" программистам приходится "прочищать" свой мозг от намертно вросшей туда концепции последовательного выполнения.