10 вещей, которые я хотел бы знать в начале карьеры программиста

6061

Я точно уверен, что я не единственный человек, который откладывал свое вхождение в IT только потому, что не знал, с чего начать.
Изобилие обучающих ресурсов создает не только огромные возможности по обучению, но также затрудняет выбор. Эта статья посвящается тем, кто только начинает делать свои первые шаги в сфере IT. Итак, 10 вещей, которые я хотел бы знать в начале своего пути.

❶ Выбор языка — это важно!

Сегодня существует огромное множество языков программирования. Каждый из них имеет свои сильные и слабые стороны, а также сферы применения. Скажу сразу — первый язык программирования учить труднее всего. В первую очередь, вам нужно будет выучить основы (переменные, циклы, функции и так далее). Поэтому стоит уделить должное внимание выбору своего первого языка программирования. Простота — это то, что следует учитывать. Не стоит сразу браться за сложные вещи. В таком случае программирование вам быстро наскучит и вы забросите это, даже не начав. Лучше начните с чего-то простого. Важно, чтобы вы могли видеть результат своей работы.

Также следует учитывать свою цель изучения программирования. Если у вас есть идея создания какого-либо приложения, то посмотрите в Интернете, какие именно технологии нужны для реализации данной идеи.

Если же вы хотите найти высокооплачиваемую работу в крутой компании, то составьте список из 10–20 таких компаний, а затем просмотрите вакансии и составьте перечень технологий, которые требует та или иная компания для приема на работу.

❷ Официальная документация

Языки программирования — это не просто какая-то сложная штука, которую вы должны понять интуитивно. Каждый язык программирования, фреймворк или библиотека имеет свою официальную документацию, доступную в Интернете. Ниже я дам ссылки на официальную документацию некоторых технологий, чтобы вы могли посмотреть, как это выглядит.
Python.org | RubyonRails.org | Reactjs.org

❸ Google — это ваш друг и со временем ваша дружба будет становиться только крепче.

Каждый программист использует Google, когда сталкивается с трудностями(а такие ситуации точно бывают). Нет, использование Гугла это не удел новичков, а полезный навык. Скорее всего, вы не первый и не последний, у кого возникала подобная проблема и поэтому ее решение уже описано где-то в Интернете (StackOverflow.com — отличный ресурс для поиска решений проблем, связанных с программированием).
Вам будет очень трудно продвинуться в программировании без использования Google и сопутствующих ресурсов.

❹ Чудес не бывает. Программирование — это решение проблем. Вы постоянно будете сталкиваться с трудностями.

Люди пользуются различными приложениями и даже не задумываются над тем, как это все работает. Для обычных пользователей — это просто магия.

Надеюсь, вы понимаете, что это не так. Хорошо работающее приложение — это тысячи строк кода, которые связно работают. Банальное нажатие кнопки может оказаться не таким уж и банальным с точки зрения реализации кода.
Но не отчаивайтесь, программирование можно выучить. Да, вначале будет трудно, однако так во всем. Когда вы учите какой-то новый язык (например, французский или немецкий), на начальных этапах вам ничего не понятно, а речь нового языка похожа на какое-то беспрерывное мычание. Постепенно, шаг за шагом, вы начинаете вникать и уже понимаете, как выражать свои мысли, используя синтаксис и слова изучаемого языка. Так это работает.

❺ Выучить все невозможно

Да, да, вы никогда не выучите программирование полностью. Всегда будет то, чего вы не знаете. Это верно как минимум потому, что информации уж слишком много. Также не стоит забывать, что мир постоянно меняется — создаются новые языки программирования с новым функционалам, новые фреймворки и библиотеки, которые тут же становятся популярными и все переходят на них, появляются новые подходы, которые лучше нынешних, и так далее.
Единственное, что не меняется в программировании — это тот факт, что оно постоянно меняется. Следует принять это и научится с этим работать.

❻ GitHub – это круто!

GitHub — это удаленная система контроля версий, которая работает в связке с Git, (локальной системой контроля версий).
Вам стоит создать учетную запись в самом начале пути программиста. Также следует обучиться работе с Git. Это важно!
Во время работы над каким-либо проектом очень часто бывают ситуации, когда вам необходимо решить проблему, но вы не знаете, как это сделать, или просто хотите что-то протестировать.
Git позволяет вам делать это, без риска нанесения вреда рабочей версии проекта. Это достигается за счет того, что вы можете абстрагироваться от основного(рабочего) проекта, создав, по сути, отдельную версию проекта, с которой вы можете экспериментировать.
Вы можете применять тот или иной способ решения проблемы, и файл будет сохранен, но до тех пор, пока вы не сделаете коммит, он не будет сохранен в основной версии проекта.
GitHub — это система удаленного хранения ваших локальных репозиториев Git (это означает, что для каждого проекта вам также нужен локальный Git репозиторий и репозиторий на GitHub). Воспринимайте это как DropBox, только для кода. Если что-то случится с вашим компьютером, весь написанный вами код не будет потерян.

❼ HackerRank, LeetCode и Codewars

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

Я лично люблю LeetCode, потому что он дает хороший фидбек по вашему коду, а не просто сообщает, решили вы задание или нет. Я также часто использую HackerRank просто потому, что мне нравятся челленджи, которые предлагает данный ресурс.

❽ Без практики ничего не выйдет. Практикуйтесь!

Важность практики переоценить трудно. Да, бывают моменты, когда ты пытаешься что-то сделать, но у тебя не выходит. Постепенно появляется чувство беспомощности, за которым следует деморализация и, в итоге, опускаются руки. Конечно, проще пропустить задание и перейти к следующему. Однако не стоит этого делать. Упорствуйте до последнего и, я точно знаю, в какой-то момент решение придет само собой. Один момент все решит. Добраться до этого момента трудно, но, уверю вас, оно того стоит. Не сдавайтесь!

❾ Язык программирования — не то же самое, что фреймворк. Фреймворк — не то же самое, что библиотека.

«Язык программирования», «фреймворк», «библиотека» часто используются как синонимические понятия, однако это не так.
Язык программирования — это фактически и есть программирование в его грубой форме. В конечном итоге, язык программирования создает последовательность нулей и единиц. Примерами языков программирования могут стать RubyJavaPythonJavaScript и другие.

Библиотеки и фреймворки, в свою очередь, это надстройка над языком программирования. Они предлагают программисту определенную абстракцию, которая помогает в решении каких-то общих проблем. Часто это достигается с помощью наличия в фреймворке/библиотеке определенных функций/методов. Благодаря этому, программисту не надо каждый раз изобретать колесо заново — он может просто воспользоваться тем, что дает фреймворк/библиотека.
Используя библиотеку, программист полностью контролирует применение данной библиотеки. Это он решает, где и как ее нужно использовать. Примерами библиотек являются React.js и Redux, которые, в свою очередь, являются библиотеками языка JavaScript. В фреймворках поведение приложения отчасти предопределено. Примеры фреймворков: Rails — фреймворк языка RubyDjango — фреймворк для создания веб-приложений, написан на Python.

❿ Программирование — это больше, чем синтаксис. Намного больше!

Разработка программного обеспечения — это гораздо больше, чем просто знание синтаксиса. Писать код, когда все работает как надо, легко. Но вы же понимаете, что такое мало когда бывает. Программирование — это когда ты делаешь дебаг после того, как утверждал, что все работает как наручные часы. Да, это трудно, но это прикольно.
Вам нужно знать не только, что a + b = c, но и почему это так. В противном случае вы как-то сядете за написания кода и окажется, что a + b = d и вы не будете знать почему.
Каждый язык программирования — особенный и понимание некоторых нюансов, очень важно, потому что иногда случаются непредвиденные ситуации и надо знать, как их преодолевать.

Спасибо!

источник