Какой язык программирования лучше изучать первым?

Перед тем как выучить основы программирования в своём первом выученном языке я задавал этот вопрос десятки раз. И лучше всего мне ответили однажды - здесь. Ответом был — английский. На самом деле доля правда в этом есть. Современные языки так сильно пытаются упростить вхождение в основы, что написанный код читается уже почти как нормальный произносимый английский: "Возьми переменную а, и пока она меньше 10, прибавляй к ней переменную б." Без английского очень часто никак и никуда. Если же говорить о современных компьютерных реалиях, то лично моё мнение далеко неодносложно.

Список языков, разметок, скриптов и технологий с которыми стоит ознакомиться:

  1. Java
  2. C#
  3. Python
  4. PHP
  5. Javascript
  6. HTML
  7. CSS
  8. XML
  9. Word
  10. Excel
  11. PowerPoint
  12. Acces
  13. Реляционные базы данных, например MySQL, SQL или Derby
  14. Powershell
  15. Swift
  16. UML
  17. Реляционная алгебра
  18. Булева алгебра
  19. Теория множеств
  20. Тестирование программного обеспечения
  21. Разработка программного обеспечения

Неплохой список, правда? Поверьте мне, что любой программист раскритикует данный список в пух и прах и предоставит свой. Но позвольте я сначала объясню, что я подразумеваю под каждым пунктом.

Java — высокоуровневый объектно ориентированный язык программирования со строгой типизацией переменных. Программы на этом языке работают практически везде, на мой взгляд это математически хорошо структурированный язык, с прекрасной обучающей документацией и на русском языке. Разработчики и программы на Джаве нужны практически везде: в банковском секторе, на заводах, в медицине и вебдевелопменте(например поиск). Программы на андроид используют джаву. Определённо, что человек осиливший джаву — не испугается необходимости обучению ещё одному языку. Джава достаточно, если не очень, сложна в обучении и требует хорошего абстрактного мышления. Пример применения в играх — Майнкрафт.
Именно с этого языка началось моё знакомство с программированием и не смотря на вся тяжести обучения — я даже полюбил этот язык. Немножко. :)

C# — почти всё, что было сказано про джаву можно сказать и про сишарп. Майкрософт попытался сделать свою Java и конечно языки очень похоже и внешне. Прежде всего оба языка называются си-подобными. Разница между Си и Джавой с Сишарпом только в урровне. Си низкоуровневый язык, что значит доступ к железу напрямую. А джава и сишарп высокоуровневые, что значит доступ к железу через прослойку в виде операционной системы. Это не плохо и не хорошо. Это просто особенности языков со своими плюсами и минусами, которые следует учитывать при разработке. Если говорить только о Сишарпе, то стоит сказать, что очень многие приложения для смартфонов сделаны на Unity3d, что в свою очередь использует C# и Javascript. Мораль. Если вам интересна десткопная разработка под Windows10 и позже, то скорее всего вам стоит посмотреть в сторону C# внимательнее. Изучение основ джавы или Си перед изучением C# совсем не помешает.

Python — помимо того, что Питон (или Пайтон) современный и объектно-ориентированный, он ещё и достаточно широко используется. Питон по легенде придуман после попытки выучить Java. Задача стояла сделать синтаксис языка как можно проще, меньше и понятнее. Частично это удалось и на мой взгляд Питон самый распространённый язык среди не профессиональных программистов, как бигдата-аналитиков, систем-администраторов, математиков и прочих. С этого языка определённо можно начать знакомство с миром машин. Существует масса уроков онлайн и поддержка комьюнити.

PHP — среди "настоящих" программистов ходят шуточки про PHP-кодеров. Суть их сводится к тому, что PHP не настоящий, не серьёзный язык, в нём нет к примеру чёткой типизации данных и нет объектов. И исходя из этого в PHP кодят те, кто не осилил нормальный язык, как Си, Java, Python и тд. На самом деле, частично всё так. В PHP очень много случайных людей, они пилят свои маленькие говносайтики и у них самые маленькие зарплаты в отрасли. Но такое наблюдается практически только на джунах и частично на мидлах. Опытные разработчики прекрасно разбираются в архитектуре, проектировании и объектах. И зарплаты у опытных спецов ни чем ни хуже, чем у коллег из смежных специальностей. Помимо того уже сейчас в новых версиях PHP активно используется ООП и новые версии фрейморков, например Drupal вовсю используют "сложные" технологии, которые раньше в вебдеве были только в энтерпрайзе. Я считаю, что в веб-разработке без знания PHP делать нечего. И можно записать в список изучения PHP, если вы хотите добиться успехов. Именно список. К английскому и PHP добавятся ещё некоторые вещи.

Javascript — история наименования языка показывает, что нейминг далеко не бесполезная наука. На данный момент Javascript не менее популярнее Java. Javascript используется в вебразработке и уже при создании почти всего. Браузеры же есть везде, а там где есть браузеры может быть использован и Яваскрипт. Уже упомянутый выше фреймворк Unity3d использует и наш Javascript. И не смотря на это — я бы его внёс в список изучения не на первом месте. Но всё же обязательным к изучению для всех. Потому что интернетом пользуются все, а интернет и Яваскрипт сегодня "неотделимы".

HTML — Hypertext Markup Language. Не язык. Вообще никак не язык. Это просто разметка страницы. Знание основ Hypertext Markup Language входит уже в общее образование, как знание геометрии. По этому уговаривать его учить смысла нет. Если вы ещё не знаете как выглядит HTML-страница изнутри — учите!

CSS — Cascading Style Sheets. Это стили, помогающие отобразить информацию в HTML-документе корректно. Без CSS современная веб-разработка уже невозможна. Первоначально служило дополнением к HTML. На сегодняшний день применяется много шире. К примеру GUI (графический интерфейс) Java в последней версии — JAVAFX использует элементы CSS для отображения информации. В связи с этим, кем бы вы не хотели стать, для чего бы вы не использовали навыки кодирования, скорее всего вам пригодятся знания каскадных стилей. Основы HTML и CSS неподготовленному студенту филологу можно выучить за 5-10 полноценных учебных дней.

XML — ещё один тип разметки, eXtensible Markup Language. Интересен для изучения тем, что разобраться с ним можно за несколько часов, максимум за пару дней. А вкупе с HTML помогает понять, что разметки не такие уж и сложные, и каждая следующая будет даваться легче и легче. Например MD — Markdown, который всё чаще встречается вместо привычного txt-формата. Следует осознать, что иксмл используется везде. В Java, Андроид-разработке, веб-разработке, в создании маленьких "домашних" "баз данных". Если хотите, то это то что надо выучить первым. И перенести всю коллекцию фильмов в формат XML.

Word — в бытность шефом одной небольшой веб-студии очень хотелось скинуть часть скучных обязанностей на своих сотрудников. Не получилось. В совершенстве ни вордом, ни екселем, ни поверпойнтом не владел никто. В итоге был вынужден заняться самообучением и выучить пакет MS Office самостоятельно. И поверьте мне, что там есть что учить. В среднем продвинутым пользователем в ворде можно стать за две-четыре недели обучения. И это пригодится тем более программисту. Как вы думаете в какой программе вы будете делать 100-страничную документацию к бухгалтерской программе и вебсайту для средней пиццерии? Что серьёзно не задумывались о том, что всё это кому-то надо делать? Ещё раз - ВОРД!!! Полноценное образование без ворда невозможно.

Excel — MS Excel или Google Spreadsheet. Это то, что надо выучить. Вместо или можно поставить "И" и добавить Libre Office. Уверенно чувствовать себя надо везде. Сложные формулы в Google Spreadsheet пишутся кстати на Яваскрипте, а в Екселе на VBS. VBS учить не рекомендую вообще. Бесперспективный скрипт, который забыт даже производителем. MS Excel — это наиболее широко используемая система функционального программирования и помимо того, что помогает в профессиональном плане никогда не будет лишним и в повседневной жизни.

PowerPoint — или любая другая программа для составления презентаций. В данном случае производитель абсолютно не имеет значения. Но я Виндовс-пользователь и мне проще говорить о продуктах Майкрософт. Я не мало поездил по отраслевым конференциям и могу сказать, что далеко не все спикеры умеют выжимать из презентационных материалов максимум возможностей. Умение доступно выражать свои мысли, в том числе перед коллегами и клиентами поможет в работе неимоверно.

Acces — работа с базами данных. В сети достаточно материалов по всем продуктам майкрософта и обучение с Acces тем легче, что зачастую он уже есть на компьютере и ничего не надо ставить дополнительно. Программисты хранят данные в базах данных. Системные администраторы администрируют в том числе и базы данных. А проектировщики должны в том числе понимать что такое проектирование базы данных. Суть — надо, но может всё таки не в самое начало списка.

Реляционные базы данных, например MySQL, SQL или Derby — существуют различные системы управлениям базами. Ударение стоит сделать на реляционных базах данных. И на MySQL. Но всё же большей разницы на самом деле нет. После полноценного изучения MySQL (2-4 недели) каждая следующая система учится за день - два. Если вы учите Java, то вам интересна Дерби и MySQL, если вы хотите учить PHP, то мимо MySQL вам не пройти. Самое главное научиться проектировать базы, приводить их в нормальную форму и научиться составлять запросы. За месяц-два обучения можно стать очень хорошим специалистом.

Powershell — в своё время я администрировал компы и именно тогда я возненавидел VBS. Он мне встречался ещё при создании макросов для MS Office. VBS очень страшная вещь, которая может отбить охоту программировать навсегда. Powershell — это замена ненавистному скрипту. И на удивление замечательная замена. Если у вас Win10, то можете прямо сейчас начать изучать Powershell и его возможности. С ним можно достичь великих целей. И это совсем не шутка. Администрирование парка машин на Win10 без знания Powershell невозможно.

Swift — язык на котором Apple рекомендует писать приложения для OSx. В том числе и айфонов. Для этих целей я бы рекомендовал именно его тоже.

UML — Unified Modeling Language. Язык, который практически не используется в Рунете и тем более в вебразработке Рунета. А зря. С помощью этого языка можно нарисовать всё, что угодно: дом, взаимодействие с новой программой, новую базу данных с отношениями и атрибутами, классы и методы с параметрами и без. Всё что угодно. И умея UML и C#, и Java, и Swift, и MySQL дадутся намного легче. Если вообще их можно выучить без знания UML.

Реляционная алгебра, Булева алгебра, Теория множеств — три крайне важные темы в математике, которые вам понадобятся при обучении языков программирования. Понятно, что в жизни вам может и не понадобятся знания XOR, AND, NOT или OR; но не в обучении. Без понятия булевой алгебры будет очень тяжело. 95% программ не требуют досконального знания двоичной системы, сдвигов влево и вправо, умения в уме складывать и перемножать true и false, но и скрипичный ключ, с войной и миром мне в повседневной жизни не сильно нужен. Это базовые знания. Учить. По-любому.

Мораль

Морали нет. Путей развития множество:
Работая в аналитике больших данных вам никак нельзя без знания алгебры и высшей математики и скорее всего будет достаточно Python.
Занимаясь вебразработкой, даже такой "простой CMS", как Wordpress или Drupal вам понадобятся знания — PHP, HTML, CSS, Javascript, MySQL.
Работая системным администратором вам понадобится знание всего пакета MS Office, Powershell, HTML, CSS, XML и алгебры.
Разрабатывая под Андроид понадобится так же немало — Java, HTML, CSS, XML, MySQL.

И конечно же всем нужны полноценные знания в MS Office, как минимум на уровне пользователя.

Мой личный совет — составить план, где урок алгебры чередуется с уроком по Оффису и программированием. И мой минимальный список изучения для Windows пользователя:

  1. Реляционная алгебра
  2. Булева алгебра
  3. Теория множеств
  4. Word
  5. Excel
  6. PowerPoint
  7. Acces
  8. Powershell
  9. Python
  10. UML
  11. XML
  12. HTML
  13. CSS
  14. Java
  15. Реляционные базы данных, на примере MySQL
  16. PHP
  17. Javascript
  18. C#

Если вы думаете, что это много, то не забывайте, что вам скорее всего(возможно) придётся ещё в плотную разбираться с гитом, докером, векторной графикой, фотошопом, видео- и аудио- кодеками, апи- фейсбука, инстаграмма, вконтакте, телеграма и тд, и тп.

Комментарии

Спасибо, познавательно!

Страницы

Добавить комментарий

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и абзацы переносятся автоматически.
Target Image