Как учиться на программиста


101 совет, как стать хорошим программистом (и человеком) / Habr

1. Научитесь гуглить
Быть программистом, — значит научиться искать ответы на свои вопросы. Научившись эффективно «гуглить», вы сэкономите много времени, затрачиваемого на разработку.

2. Не обещайте много, но делайте больше, чем обещали
Лучше сообщать вашей команде, что выполнение задачи займет три недели, но выполнять её за две, чем наоборот. Следуя этому принципу, вы выстроите доверительные отношения.

Примечание от переводившего:

Большая просьба снисходительно отнестись к замеченным ошибкам в переводе, грамматике или пунктуации, и сообщить о них для исправления.
Спасибо

3. Будьте добры к дизайнерам; они ваши друзья
Дизайнеры обеспечивают решения пользовательских проблем. Учитесь у них и работайте сплоченно, чтобы создавать эффективные продукты.

4. Найдите наставника
Найдите кого-то, у кого могли бы учиться и получать авторитетное мнение (в ориг. «bounce off»). Coding Coach — отличное место, где вы можете найти технического наставника.

5. Будьте наставником
Будьте тем, у кого другие могут чему-то научиться. Мы будем рады видеть вас среди наставников на Coding Coach.

6. Пишите полезные комментарии
Пишите комментарии, объясняющие «почему», а не «что».

7. Называйте переменные и функции соответствующе
Функции и переменные должны точно описывать их назначение, поэтому «myCoolFunction» не подходит.

8. Берите отпуск
Нам всем нужно отдыхать. Отправьтесь в путешествие, о котором мечтаете. Ваш мозг и сотрудники будут благодарны.

9. Удаляйте неиспользуемый код
Не стоит накапливать технический долг.

10. Учитесь читать код
Чтение кода — недооцененный навык, но очень ценный.

11. Установите здравый баланс между работой и личной жизнью
Вам требуется время, чтобы расслабиться после долгого рабочего дня. Отключите рабочие уведомления или удалите приложения из вашего телефона.

12. Личные встречи только при необходимости
Этот вопрос может быть решен по Email или Slack? Если да, не стоит назначать встречу. Если нет, не затягивайте её продолжительность без веских причин.

13. Парное программирование
Парное программирование позволяет вам побыть и в роли учителя и в роли ученика.

14. Пишите отличные email-письма
Научитесь захватывать внимание собеседника в email-письмах, выражаясь кратко, но ясно.

15. Станьте частью сообщества
Окружайте себя единомышленниками, мотивирующими вас преодолевать трудности.

16. Убирайтесь в своих ветках
Убирайтесь в ваших ветках систем контроля версий, как вы делаете это дома перед приходом гостей. Если вы не нуждаетесь в чем-то, выбросите это; не складывайте в шкаф.

17. Не занимайтесь фейс-контролем
Не говорите другим, что они недостаточно хороши, чтобы работать в отрасли. Каждый имеет ценность.

18. Постоянно обучайтесь
Вы выбрали профессию, которая требует непрерывного обучения. Учитесь любить и это.

19. Не сдавайтесь
Это не всегда будет легко. Но ведь мы все начинали с того же. У вас получится.

20. Беритесь за задачи, которые пугают
Если они вас не пугают, значит не помогут вам расти.

21. Уточняйте требования перед тем, как начать
Вы должны понять критерии выполнения задачи перед тем, как приступить к написанию кода. Это сэкономит ваше время.

22. Овладейте набором инструментов
Обзаведитесь набором инструментов, которыми вы владеете вдоль и поперек. Знайте, для каких целей они служат и когда выгоднее использовать тот или иной инструмент в проекте.

23. Учитесь любить конструктивную критику
Просите доверенных коллег и друзей о конструктивной критике. Это поможет вам расти как программисту и как человеку.

24. Будьте всесторонне развиты
Технологии меняются, и меняются быстро. Не противьтесь новинкам, а изучайте и формируйте о них своё мнение.

25. Оставайтесь актуальным
Будьте в курсе последних технических новостей, следя за публикациями, блогами, подкастами и новостями.

26. Сосредоточьтесь на решении проблемы
Развитые навыки решения проблем помогут победить любую проблему. Оттачивайте то, что поможет решить проблему.

27. Оставайтесь скромным
Независимо от того, какое у вас звание или в какой компании вы работаете, оставайтесь скромным.

28. Учитесь делать отличные презентации
Учитесь, как увлекать аудиторию и делать отличные презентации

29. Изучите все решения, прежде чем остановиться на чем-то
Не хватайте первое попавшееся решение. Изучите все варианты перед тем, как приступать к написанию кода.

30. Найдите свою нишу
В технической индустрии существует много разных сфер. Найдите область, которая будет интересовать вас больше других и станьте в ней экспертом.

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

32. Изучайте отладку кода
Исследуйте инструменты браузера для отладки кода. Изучайте эти возможности в вашей IDE. Изучая наиболее эффективные методы отслеживания ошибок, вы будете способны решить даже наиболее сложные проблемы.

33. Развивайте свои текущие навыки
Просто потому, что в данный момент вы овладели каким-то навыком, не значит, что не нужно продолжать развивать его. Навыки со временем теряются, если сознательно не совершенствуются, а индустрия эволюционирует настолько стремительно, что важно продолжать практиковаться. Избавьтесь от типа мышления «Я всегда это делал таким образом» и переключитесь на «Есть ли лучший способ сделать это?».
Даже если сейчас у вас отличный пресс, глупо надеяться, что вы сможете съедать по пончику в день и не потерять его

34. Поймите, почему
Будут ситуации, когда вы должны будете высказать своё мнение, поэтому предварительно важно понять, почему. Почему решение «А» лучше решения «Б»? Предоставьте правильные аргументы и ваше мнение будет более обоснованным.

35. Знайте себе цену
Вы — товар, и должны быть надлежащим образом оплачены. Будьте осведомлены о средних зарплатах в вашей сфере в регионе, где находитесь. Если вы получаете меньше денег, пора поговорить с менеджером. Идите за тем, чего заслуживаете.

36. Не бойтесь просить о помощи
Если вы застряли на проблеме и тратите слишком много времени на поиск решения, самое время обратиться за помощью. Все мы люди. Нам всем может понадобиться помощь. Нет ничего постыдного в том, чтобы обратиться к коллеге за поддержкой.

37. Учитесь учиться
Люди обучаются по-разному. Одним лучше обучаться с помощью видеоуроков, другим — через чтение книг. Определите подходящий вам стиль обучения и старательно практикуйте его.

38. Будьте добрым
Будут ситуации, когда вас попросят дать отзыв о коллеге. Будьте добрым. Вы можете высказать мнение о недостаточной инициативности Деборы, не разрывая её на части.

39. Делайте перерывы
Практически невозможно 8 часов подряд проводить за написанием кода. Вы быстро выгорите и наделаете множетсво ошибок. Поэтому установите таймер, чтобы напомнить себе останавливаться и сделать перерыв. Сходите на прогулку. Попейте кофе с коллегами. Отвлечение от экрана положительно скажется на вашей продуктивности и качестве работы.

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

41. Не полагайтесь на фреймворк или библиотеку
Изучайте нюансы языка программирования больше, чем тонкости фреймворка или библиотеки. Не обязательно изучать язык перед знакомством библиотеками, но понимание того, почему фреймворк или библиотека работают определенным образом, поможет вам писать более чистый и производительный код.

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

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

44. Не выбирайте удобную технологию; выбирайте правильную
У каждого проекта разные потребности и поэтому мы должны выбирать правильные инструменты для работы. И хотя гораздо удобнее выбрать технологии, с которыми вы работали ранее, если они не соответствуют потребностям проекта, нужно изучить альтернативы.

45. Берите ответственность за свои ошибки
Все люди делают ошибки и вы будете допускать их на протяжении всей вашей карьеры. Поэтому очень важно признавать это и брать на себя ответственность, когда допускаете ошибку. Это поможет выстроить доверительные отношения с членами вашей команды и менеджментом.

46. Проверяйте свой собственный код
Перед созданием пул-реквеста, проверьте свой собственный код. Если это была работа коллеги, какие комментарии вы бы сделали? Очень важно сначала определить проблемы или ошибки, прежде чем запрашивать проверку кода.

47. Учитесь на своих неудачах
Неудача — это просто не достижение ожидаемого результата, и это не обязательно плохо. У всех нас случается много неудач в течение карьеры. Учитесь на своих ошибках. Что вы можете сделать по-другому в следующий раз?

48. Определите свои слабые стороны
Узнайте себя. Какие у вас слабые стороны? Может быть, постоянно забываете обновить тесты перед пушем. Или вы плохи в плане ответов на email-сообщения. Изучите свои недостатки, чтобы активно работать над ними.

49. Оставайтесь любопытным
Эта сфера постоянно эволюционирует, поэтому любопытство важно. Если вы чего-то не понимаете, будь то требования проекта или строка кода, скажите об этом. Никто не будет критиковать вас за то, что вы попросили разъяснений, и в результате вы создадите лучший код.

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

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

52. Поддерживайте свою команду
В хорошей команде все поддерживают друг друга. Это создаёт благоприятную почву пробовать что-то новое без страха наказания.

53. Ищите вдохновение в сообществе
Найдите несколько человек из той же сферы, которые вас восхищают. Это будет вдохновлять вас продолжать работать над своими проектами или пробовать что-то новое.

54. Цените свою работу
Независимо от опыта или должности, ваша работа имеет ценность. Цените её по достоинству.

55. Заблокируйте отвлекающие факторы
Отключение уведомлений в мессенджерах, email и социальных сетях поможет вам сфокусироваться и провести рабочий день максимально продуктивно. Джерри не умрёт, если вы ответите ему через 30 минут.

56. Оказывайте поддержку
Поддерживайте членов вашей команды, например, посетив важную презентацию или помогая, если они застряли.

57. Хвалите тогда, когда этого заслуживают
Если кто-то проделал отличную работу, скажите об этом. Похвала — отличный способ завоевать доверие членов вашей команды.

58. Тестируйте ваш код
Тесты важны. Юнит-тесты, регрессивное, интеграционное, сквозное тестирование. Тестируйте свой код и ваш продукт будет более стабильным.

59. Распланируйте свой подход
Когда вы получаете запрос на разработку нового функционала или тикет с ошибкой, сначала разработайте план атаки. Что вам требуется, чтобы решить эту проблему или разработать функционал? выделение хотя бы нескольких минут, чтобы спланировать атаку, может сэкономить часы разочарования

60. Учитесь псевдокодировать.
Псевдокодирование — отличный навык, потому что позволяет вам решать сложные проблемы без затрат времени на написание строк кода. Опишите выбранный подход на бумаге, смоделируйте различные примеры тестирования и посмотрите, где подводные камни.

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

62. Изучайте основы программирования
Изучите некоторые основные алгоритмы сортировки и поиска, а также структуры данных. Это поможет вам в решении задач независимо от языка.

63. Выбирайте долговечные и поддерживаемые технологии
Хотя тестировать самые новые технологии интересно, выбирайте те из них, которые будет легко поддерживать в enterprise-приложении. Команда будет благодарна вам долгие годы.

64. Изучайте шаблоны проектирования
Шаблоны проектирования — это полезные инструменты для разработки архитектуры кода. Вы можете не нуждаться в них на каждом проекте, но общее представление о них поможет при создании больших приложений.

65. Уменьшайте неоднозначность
Вместо написания сложного кода, демонстрирующего ваши умелые навыки программирования, стремитесь к удобочитаемости и простоте. Это поможет членам вашей команды легче внести свой вклад.

66. Погашайте технический долг
Технический долг может иметь серьезные последствия для производительности, поэтому если можно провести рефакторинг, вы должны это сделать.

67. Обновляйтесь чаще
Вместо того, чтобы выпускать масштабные обновления раз в месяц, делайте это чаще с меньшим списком изменений. С меньшей вероятностью вы сделаете ошибки и сломаете изменения.

68. Делайте коммиты рано и часто
Делать коммиты рано и часто — лучший способ обеспечить чистоту вашей работы, а также уменьшить стресс от случайного возврата важных изменений.

69. Поймите, когда нужно просить о помощи
Вам следует не только не бояться просить о помощи, но и понять, когда это следует делать. Вы всегда должны пытаться решить проблему перед тем, как просить о помощи. Но когда вы боретесь с проблемой больше часа, стоимость перевешивает выгоду, и вам следует обратиться к коллеге.

70. Задавайте правильные вопросы
Когда задаете вопрос, старайтесь быть настолько конкретным, насколько это возможно

71. Получайте отзыв о незаконченной работе
Вам не обязательно заканчивать работу, чтобы получить отзыв о ней. Если вы не уверены в правильности выбранного направления, попросите коллег помочь проверить это.

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

73. Пробуйте всё
Ничего не мешает вам попробовать решение проблемы. Что вам терять?

74. Разговаривайте на встречах
Ваши идеи и мнения ценны, поэтому участие в митингах поможет вам развить взаимопонимание с командой и руководством.

75. Сотрудничайте с другими командами
Если появилась возможность поработать с другой командой в вашей компании, воспользуйтесь ею.

76. Обзаведитесь личными проектами
Когда вы работаете 40 часов в неделю, важно выделять время сторонних проектов, которыми вы увлечены. Они помогают оживить вашу любовь к программированию и попробовать новые технологии, к которым у вас может не быть доступа на работе.

77. Определите свои карьерные цели
Важно иметь представление идеального карьерного пути. Если этого нет, вы пытаетесь пустить стрелу, не видя цели.

78. Участвуйте в беседах
Комментарии в блогах, участие в разговорах в Twitter. Взаимодействуйте с сообществом. Вы узнаете гораздо больше, если будете активным участником, а не овощем.

79. Распределяйте задачи по приоритетам
Обучение расставлять приоритеты к задачам поможет увеличить продуктивность. Ведите текущих ежедневных задач, а также долгосрочных задач, и упорядочивайте их по наиболее важным.

80. Не упускайте из виду детали
Детали могут иметь большое значение в проекте

81. Доверяйте своей команде
Ваших коллег по команде наняли на работу за их навыки. Используйте их и доверяйте им, чтобы выполнить работу.

82. Учитесь делегировать
Если вы занимаете руководящую должность, учитесь эффективно делегировать полномочия. Это сэкономит вам время. Вы не можете делать все сами.

83. Не сравнивайте себя с другими
Единственный, с кем вы должны себя сравнивать, — это кем вы были вчера.

84. Окружите себя союзниками
Обучение программированию будет долгим, и не всегда легким, путем. Окружите себя людьми, которые будут подталкивать вас идти вперед.

85. Не начинайте с масштабируемости
Начинать масштабируемости — это верный путь перегрузить себя. Создавайте с учетом масштабируемости, но не начинайте масштабирование, пока в нем не появится потребность. Таким образом, вы не перегружаете свою команду, но сохраняете способность к росту.

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

87. Не допускайте дискриминации
Не допускайте дискриминации новых технологий или идей. Будьте открыты возможности освоить новые навыки. Также не допускайте дискриминации людей. Мы все заслуживаем уважения.

88. Беритесь за работу, для которой недостаточно квалифицированы
Вы никогда не будете соответствовать всем требованиям для работы. Поэтому используйте шанс и приступайте! Что вы потеряете?

89. Разбивайте код на модули
Вы могли бы писать весь код в одном длинном файле, но это сложно поддерживать. Благодаря модульности, мы убеждаемся, что наш код легко воспринимать и тестировать.

90. Не следует просто копипастить
Если собираетесь скопипастить решение со StackOverflow, вы должны точно понимать, что оно делает. Разбирайтесь в коде, который решили внедрить.

91. Создайте вдохновляющую среду
Вы будете намного более мотивированы работать, если удовлетворены своим рабочим местом.

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

93. Старайтесь оставаться оптимистом
Если что-то не получается, продолжайте пытаться и будьте оптимистом. Завтра новый день. Оптимизм поможет движению вашей команды и вашему психическому здоровью.

94. Постоянно переоценивайте свой рабочий процесс
Просто потому, что что-то работает сейчас, не значит, что так будет всегда. Переоценивайте свой рабочий процесс и вносите коррективы, когда это нужно.

95. Учитесь работать из дому
Если у вас есть возможность, работать из дому, учитесь делать это эффективно. Найдите отдельный офис, лишенный отвлекающих факторов. Boneskull написал отличную статью о работе из дому, с которой вам следует ознакомиться.

96. Создавайте доступные продукты
Каждый должен иметь возможность воспользоваться вашим продуктом

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

98. Будьте инициативны
Если у вас есть свободное время, помогите с выполнением задач своей команды. Они будут благодарны за вашу инициативу.

99. Создайте потрясающее портфолио
Отличное портфолио выделяет вас из толпы. Используйте это как шанс показать свои навыки программиста и дизайнера.

100. Помните, почему любите программирование
Вы подались в эту профессию, потому что она вызвала интерес. Если вы выгораете, сделайте перерыв. Дайте себе возможность возродить свою страсть к программированию.

101. Делитесь своими знаниями
Если вы освоили что-то крутое, поделитесь этим. Представьте на местом митапе или конференции. Обучайте своих коллег или подопечных во время обеда. Обмен знаниями укрепляет их.

habr.com

Заканчивая 4 год обучения на программиста, я понимаю, что до программиста мне далеко

Статья в первую очередь направлена на молодых людей, которые еще только думают выбрать профессию.

Предисловие


В уже, как нам кажется, далеком 2015 я окончил школу и начал раздумывать о том, кем же я хочу стать в этой жизни. (хороший вопрос, я все еще ищу на него ответ) Жил я в маленьком городишке, обычные школы, пару ПТУ и филиал простенького университета. Окончил музыкальную школу, играл на протяжении всей школьной жизни в театре, но после 11 класса дернуло встать на техническую тропу. Стать программистом я не хотел, хотя и отучился в классе с упором на информатику, смотрел специальности связанные с проектированием или робототехникой. Подал заявления куда смог, съездил в военное училище, понял, что не мое. Остался на выбор 2 университета, была не была, поеду в Питер.

В Питере выбор огромен, но что-то убедило меня пойти учиться на пилота — это престижно, денежно, статус в обществе. При поступлении предлагалось выбрать 3 направления, не долго думая, указал пилота (2 направления: специалист и бакалавр). Но ребята в приемной комиссии убедили все же выбрать и третье, сказал, что мне в целом без разницы, если что-то есть с программированием, то можно туда (не зря же в школе отучился дистанционно основам IT-специалиста (еще и за денежку)). Август близится к концу, мониторя каждый день списки, понимаю, что на пилота явно не прохожу из-за количества баллов, потихоньку собирался в армейку, деревья пересаживать, снежок чистить, но вдруг, звонок от родителей: «Сынок, поздравляем ты поступил!» Изумленно жду продолжения. «Ты поступил на ОрАСУВД, мы не знаем что это, но на бюджет! Мы очень рады!» «Да», — думаю я, — «главное же бюджет!» Почесывая голову, думал о том, что же значит это загадочное ОрАСУВД, но как бы там ни было, я еду в Питер, и это уже огромный повод радоваться.

Начало учебы


Расшифровка звучит так: организация автоматизированных систем управления воздушным движением. Букв много, как и смысла. Для заметки, первый курс я учился не в Питере, нас отправили в Выборг, не от хороший жизни конечно же, но в целом это было даже лучше, чем можно было ожидать.

Группа наша была очень маленькой, всего 11 человек (на данный момент нас уже 5), и все, абсолютно все не понимали, что они тут делают.

Первый курс был прост, как и у любой специальности ничего необычного, начерталка, математика и еще пару гуманитарных предметов. Прошло полгода, я все также не понимаю, что значит ОрАСУВД, а уж тем более чем они занимаются. В конце первого семестра к нам приезжает из Питера преподаватель и читает нам дисциплину «Введение в профессию».

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

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

Отстранимся от кучи мелочей и тонкостей и поговорим о теме программирования.

Крупинка за крупинкой


После того, как мы успешно прошли первый курс и приехали обучаться дальше в Питер, стало немного интереснее, и с каждым семестром все понятнее чего от нас хотят. Мы наконец-то принялись кодить, изучать азы C++. С каждым семестром наши знания наращивались, было много предметов, связанных с авиацией и радиотехникой.

К началу 4 курса я уже знал пару библиотек, научился пользоваться vector'ом и его сородичами. Немножко попрактиковал ООП, наследование, классы, в общем все то, без чего программирование на C++ вообще сложно представить. Появилось очень много предметов связанных с радиотехникой, физикой, появился Linux, который казался очень сложным, но в целом интересным.

Из нас не пытались сделать хороших программистов, из нас хотели сделать людей, понимающих все процессы, наверное, именно в этом и проблема. Мы должны были быть гибридами, что-то между программистом, эксплуатантом и руководителем одновременно (не зря наверное говорят, что двух зайцев не убить). Мы знали очень много разных вещей, но всего понемножку. С каждым годом я все больше увлекался кодить, но из-за нехватки предметов направленных на это, желание узнавать больше оставалось не исполненным. Да, возможно, я мог бы заниматься сам, дома, но в студенческие годы мало когда тебя волнуют вещи, которых не будет на сессии. Именно поэтому, будучи на пороге 5 курса, я понимаю, что все знания накопленные мною за 4 года, это маленькая горстка, с которой меня никто нигде не ждет. Нет, я не говорю, что нас плохо учили, что знания не те или не нужные. Думаю все дело в том, что осознание того, что мне нравится программирование ко мне пришло только в конце 4 курса. Только сейчас я понимаю насколько огромен выбор в направлениях кодирования, сколько всего можно сделать, если выбрать один путь из тысячи и начать изучать все, что касается этой темы. Просмотрев множество вакансий, прихожу к выводу, что и податься некуда, опыта нет, знания минимальны. Руки опускаются и кажется, что все старания в учебе сыпятся на глазах. Я же сдавал все на 5, я так много старался в написании программ, а потом оказывается, что то, чем я занимаюсь в стенах университета, настоящие программисты щелкают, как семечки на перерывах.

«ИТМО, ГУАП, Политех… Я ведь реально мог поступить туда, баллов хватило бы, а даже если не туда куда хотел бы, наверно все же лучше, чем тут!», — подумал я, кусая локоть. Но выбор сделан, время забрало свое и мне остается только брать себя в руки, и делать все, что в моих силах.

Выводы и небольшое напутствие для тех кто еще не начал свой путь


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

Юный читатель, если ты все еще не знаешь кем хочешь стать, не волнуйся, большинство взрослых тоже этого не знают. Главное — это пробовать. Именно путем проб и ошибок можно наконец понять, чего ты хочешь. Если хочешь стать программистом, то начать всегда важнее, чем точно знать в какой области быть. Все языки похожи друг на друга, и программирование не исключение.

P.S. Знал бы, что буду плыть, взял бы плавки. Я бы очень хотел начать разбираться во всем этом раньше, но в силу незаинтересованности, рутинности обучения и не понимания, что будет дальше, упустил время. Но свято верю, что никогда не поздно.

habr.com

На какого программиста учиться? ПрофГид

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

Читайте также:

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

1. Ситуация на рынке труда

Какую бы сферу и язык программирования вы не выбрали для себя, важно понимать, что вас ждет в будущем. Эта сфера постоянно развивается: одни отрасли находятся на пике популярности, другие постепенно сходят на нет.

Поэтому, прежде чем приступать к обучению, совсем нелишним будет оценить положение дел на рынке труда. Есть ли в вашем городе вакансии в интересующей вас области? Насколько это востребованное направление сейчас, и как оно оплачивается? Такое исследование даст вам представление о том, какие перспективы ждут вас в выбранной области.

2. Сложность изучения

Еще один фактор, который следует учитывать — это так называемый «порог вхождения», то есть то, сколько времени и усилий придется приложить для изучения того или иного языка, прежде чем вы сможете писать на нем хороший код.

Языков программирования огромное множество, и все они отличаются не только своими возможностями в реализации программных продуктов, но и сложностью освоения.

Наиболее простыми считаются Ruby, Python, PHP.

Читайте также:

3. Интерес

И, н

www.profguide.io

Хочу стать программистом. Какой факультет выбрать? — Хабр Q&A

Привет, я как раз из вышки - программа ИВТ (Информатика и вычислительная техника). Расскажу про каждую программу, так как имел опыт общения с людьми оттуда. Сразу предупреждаю - я говорю только о вышке, ее организация сильно отличается от других вузов:
Сперва оговорю что в вышке есть куча факультативов и в прошлом году был факультатив по разработке под Android (начального уровня, но все же неплохо). Так что ты всегда можешь выбрать любую программу обучения и набрать факультативов. Список всех факультативов можешь посмотреть тут .
1) ИВТ: на первом курсе все посредственно - был один семестр паскаль, второй семестр C. Оба курса были очень просты и были нацелены больше на обучение программированию, чем на углубление в него. Была физика, матан, линал. Также была еще информатика, но там больше рассказывали разноплановые интересные вещи. От принципа работы АЦП и ЦАП до введения в lisp. На втором курсе был качественный курс по ООП на C++. Началась электротехника и электроника, ассемблер, компьютерные сети, операционные системы, после второго курса будет выбор специализации: варианты робототехника, автоматизация систем и вычислительные сети. В общем на курсе не очень много программирования пока что, больше низкоуровневых вещей - ассемблер, работа с ОС, построение логики на транзисторах и т.д., т.е. мобильного и веб программирования не намечается

2)Прикладная математика и ИТСС - это то же подразделение, что и ИВТ и, насколько я знаю, основное различие между ними - ИТСС это ИВТ, но с большим количеством электроники, электротехники и т.д., ПМ - это тот же ИВТ, но больше математики и меньше программирования, так что их этих трех тебе больше подходит ИВТ

3)ПМИ - очень много математики, как такового программирования не очень много, подразумевается что ты сам будешь учить языки и совершенствоваться. Зато много теоретической информатики и маш. обучения. Вообще это яндексовский факультет и нацелен он на нужды яндекса и в просто на научную работу в CS.

4) ПИ - в том же подразделении, что и ПМИ, но меньше математики, вроде бы больше программирования, так же меньше теории и больше нацелено на практическую работу, скорее всего ПИ тебе подходит больше всего.

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

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

Можешь задавать вопросы в коменты - отвечу

qna.habr.com

Что нужно сдать на программиста или Все об обучении на программиста

Школьники, которые обучаются в старшей школе, все чаще и чаще размышляют над тем, что нужно сдать на программиста. Данная тема интересна потому, что можно получить указанную профессию несколькими способами. Иногда для того, чтобы стать программистом, не нужно даже получать высшее образование. В России очень много программистов-самоучек. Только им добиться успеха в карьере бывает проблематично.

Именно поэтому многие интересуется, что придется сдавать для поступления на данное направление обучения. С чем придется столкнуться абитуриентам? И куда они могут пойти учиться на программиста?

Описание профессии

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

Фактически выпускник должен будет научиться разбираться в программных и системных кодах, писать собственный софт и web-страницы. Обучение на программиста является довольно сложным процессом. Но после выпуска перспектив трудоустройства и успеха у человека будет более, чем достаточно.

С дипломом программиста можно устроиться работать на высокооплачиваемое место не только в России, но и в других странах. Или вообще начать собственный бизнес. Поэтому многие думают, что нужно сдавать на программиста. Ведь поступление на обучение подразумевает столкновение со вступительными испытаниями. В России это ЕГЭ или ГИА.

Методы получения образования

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

Так где обучаться на программиста? На данный момент предлагается:

  1. Поступить в ВУЗ на соответствующее направление. Обычно на программистов обучают на математических и информационных отделениях. Например, можно обратиться в МГИМО или в МГУ. В гуманитарных университетах программирование не встречается.
  2. Закончить колледж. Тут предлагается или после 9 класса пойти учиться, или после 11. Хороший способ получения среднего профессионального образования. В некоторых училищах не требуется вообще задумываться над тем, что нужно сдать на программиста. Достаточно просто предоставить аттестат об образовании. Но на практике чаще всего учеников принимают по результатам ГИА и ЕГЭ.
  3. Пройти курсы переквалификации. Обычно не требуется никаких экзаменов. На обучение направляют или с биржи труда, или с работы.
  4. Обратиться к помощи частных учебных центров. Достаточно закончить специализированные обучающие курсы программирования. В данном случае не требуется вообще думать о том, что нужно сдавать, чтобы стать программистом. Вступительных испытаний нет, достаточно заплатить за обучение.

Куда именно пойти учиться? Это каждый выбирает для себя сам. Но чаще всего на практике встречается поступление в колледжи и ВУЗы. Именно поэтому приходится думать, что нужно сдавать на программиста.

Неоднозначность

Придется обратить внимание на то, что однозначного ответа нет. Много зависит от того, куда именно поступает абитуриент. В ВУЗах и колледжах сейчас на программиста обучаются по разным вступительным экзаменам. И это придется учесть.

Рекомендуется сначала определиться с местом поступления, затем уже в конкретном заведении уточнять интересующую информацию. Для ВУЗов и колледжей требуются одни и те же экзамены. Но какие именно? Сдача каких предметов позволит стать программистом?

Обязательные испытания

Что нужно сдавать на программиста после 9 или 11 класса? Существует 2 обязательных предмета. Их придется в любом случае сдавать, не обязательно при поступлении на программирование.

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

Ребенок хочет освоить профессию под названием "программист"? Какие экзамены нужно сдавать после 11 или 9 класса? В обязательном порядке:

  • русский язык;
  • математика (желательно профильный уровень).

Распространенные экзамены

А что дальше? Обычно для поступления на ту или иную специальность требуется 3 предмета. Русский язык, хоть и является обязательным, но его довольно часто не принимают во внимание. То есть, он необходим для выпуска из школы. Остается еще 2 предмета.

Что нужно сдать на программиста? Чаще всего от абитуриентов требуют ЕГЭ или ГИА по следующим предметам:

  • информатика;
  • физика.

Соответственно, чтобы стать программистом, ученику придется столкнуться с:

  • математикой;
  • русским языком;
  • физикой;
  • информатикой.

Именно в таком сочетании чаще всего встречаются требования колледжей и ВУЗов. Но это не единственный вариант развития событий. Некоторые предметы, не относящиеся к математике и технике, тоже иногда могут требовать для сдачи. Как уже было сказано, все зависит от учебного заведения, в которое обращается человек.

Прочие предметы

Есть иные предметы, запрашиваемые в сочетании с математикой. Интересно направление под названием "Программист"? Что нужно сдавать после 11 класса? Вполне вероятно, что от будущего программиста потребуют результатов ЕГЭ/ГИА по:

  • иностранному языку;
  • биологии;
  • обществознанию;
  • истории.

Теперь понятно, что нужно сдать на программиста. Именно поэтому сначала люди отдают предпочтение прохождению специализированных платных курсов. И только потом задумываются над реальным поступлением в ВУЗ или техникум на программирование.

fb.ru

Как стать программистом? Куда пойти учиться на программиста? :: SYL.ru

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

Вступление

Кризису абсолютно безразлично, кто будет лишен работы. Возможно, что придется осваивать новую специальность, новую должность. Если кто-то остался без постоянной работы, он всегда может попробовать себя в качестве программиста. Серьезно, для этого нужны не столько мозги, сколько усидчивость. Именно она составляет неотъемлемую часть работы.

Безусловно, чтобы стать программистом, придется проводить порой не один час за изучением определенного материала. Иногда даже перечитывать его заново, два, три раза. Несложно догадаться, что потребуется много свободного времени. От пары до 6-8 часов. Причем не только для освоения теории, но и для применения ее на практике.

Кто может стать программистом?

Стать программистом может любой человек. Человек вообще может все. Ему стоит только захотеть, поставить перед собой цель и смело шагать к ней. Однако вы освоитесь в программировании быстрее и легче, если со школьной скамьи предметы технического профиля вам давались лучше, чем гуманитарные науки.

Как начать работать?

События, в результате которых человек становится программистом, могут разворачиваться согласно нескольким сценариям. Один из них – родители-программисты. Стоит отметить, что такой сценарий весьма часто встречается в реальной жизни. Родители, которые выбрали путь профессиональных программистов, могут передать свои знания детям.

Второй сценарий – профессия. Очень часто он встречается в жизни людей, которые при выпуске из школы и поступлении в колледжи и высшие образовательные учреждения выбрали соответствующее направление, считая его перспективным, или оно им просто понравилось.

И третий, последний сценарий – хобби. Порой оно перерастает в нечто большее, то есть в реальную работу, за которую платят настоящие деньги. Это высшая стадия хобби. Сам человек при этом даже не задается вопросом о том, как стать программистом, потому что он уже втянулся в это дело.

Не нашли нужный вариант?

На самом деле выше были перечислены только самые частые варианты, которые имеют место в нашей жизни. Но ведь это не говорит о том, что все ситуации на 100 процентов состоят из этих трех сюжетов. Есть еще 4 пути, по которому может пойти человек, задавшийся вопросом о том, как стать программистом.

Первый путь – самообразование

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

Второй путь – учеба в университете

Некоторые люди, еще учась в выпускных классах, понимают, что они хотят просто связать свою жизнь с программированием. Если вы состоите в их рядах, то можете смело подавать свои документы в соответствующие вузы, на соответствующие направления. Хотите ли вы действительно получить там знания о программировании или просто диплом программиста, чтобы потом пойти работать в успешную компанию на высокооплачиваемую должность – это уже не важно. Обучение в университете по специальности, которую вы в обозримом будущем хотите сделать основой своей жизни, всегда было и будет более предпочтительным. Но другой вопрос: “Куда пойти учиться на программиста?” Выбирать место, где вы проведете года обучения, следует внимательно, присматриваясь к учебным программам, профилям, к самому месту учебы. Следует ли говорить, что настоящему программированию могут обучить только в технических вузах или на технических факультетах? Окончив их, вы получите образование – программист.

Третий путь – ментор

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

Четвертый путь – курсы программиста

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

С чем чаще всего сталкиваются начинающие программисты?

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

Языков программирования достаточно много в настоящее время. Одни языки предназначены для программирования компьютерных игр, другие – для создания браузерных игр. Третьи – вообще для создания некоторых браузерных программ, плагинов и так далее.

Стоит отметить, что начинающий программист должен выбрать сначала направление, в котором он будет работать. Это может быть разработка игрового окружения, а также браузерного обеспечения. Только после этого можно переходить к вопросу о языке программирования. Универсальных ответов в этой области не может быть, все зависит от самого программиста.

С чего начать программировать?

Изучение программирования необходимо начинать с создания рабочей среды, которая будет комфортна при использовании. Операционная система, которую вы будете использовать в качестве этой самой среды, будет продиктована языком программирования. Для разработки приложений на ветви С (то есть C++ и C#) идеально подойдет ОС Windows. Эти языки программирования позволяют писать программное обеспечение, не оглядываясь на кроссплатформенность.

Если же вам больше нравится JavaScript, PHP, Python, то оптимальным выбором станет Linux. Почему именно так? Дело в том, что перечисленные языки программирования в основном задействуются при работе в WEB-среде. А огромное количество таких серверов работают непосредственно под управлением операционной системы Linux. Использование такой ОС даст еще несколько бонусов. Начинающий программист сможет познать основы настройки сервера. Речь идет о работе с консолью, установке сервера и базы данных.

Инструменты разработки

Для создания собственного программного обеспечения необходимо воспользоваться сторонней средой разработки. Главный ее компонент – операционную систему – мы уже разобрали. Теперь речь пойдет о втором компоненте. Это – инструменты разработки.

Для программиста, который собрался писать программы на языках ветви C, идеально подойдет Microsoft Visual Studio. Если же вы выбрали Java и Java Script, то стоит выделить немного времени для установки программного обеспечения от Eclipse.

Не обязательной, но желательной частью среды разработки является наличие редактора кода. Сейчас особой популярностью пользуется программа под названием Sublime Text. Она имеет множество встроенных функций, в том числе и подсветку кода в соответствии с выбранным языком программирования. Неплохой альтернативой стал Notepad ++.

О языках программирования

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

Для начинающих специалистов в соответствующей области самым легким станет C# или Java. Писать простенькие программы на них будет не так сложно. Например, написать код, который позволит определять результат факториала по введенному числу. Но эти языки программирования дают общее понимание гораздо лучше, чем тот же самый Python, например. Не стоит забывать, что хорошо дают представление о ЯП различные книги. Там часто после теоретической части приводятся практические задачи с подробным решением, а также задачи, которые новичок, базируясь на освоенном в ходе урока материале, должен решить сам.

Что делать, когда базовые знания получены?

После того как алгоритмы стали понятны, можно переходить к изучению синтаксиса. Также можно (скорее всего, даже нужно) ознакомиться с конструктивными особенностями языка программирования. Курсы программиста позволят сделать вам это наиболее быстро и эффективно, но если вы выбрали путь самообразования, то придется запастись терпением, огромным количеством источников и свободным временем.

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

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

В чем выигрывает WEB-программист?

WEB-программисты в ходе работы сталкиваются порой с необходимостью использования CMS. Это систему управления контентом. Но “необходимость” нужно воспринимать в положительном смысле, поскольку CMS позволяют решать задачи по программированию гораздо проще. Такие системы почти повсеместно имеют хорошо развитую инфраструктуру самых разных расширений.

Когда система уже готова, разработать расширения для нее значительно легче. А вот если функционал необходимо реализовать с нуля, здесь программиста будут поджидать маленькие (и не очень) неприятности. Стоит отметить, что популярные CMS обладают соответствующей документацией. Они позволяют начинающим разработчикам быстрее и эффективнее освоить среду. Там нередко приводятся примеры уже готовых кодов. Задать свои вопросы можно и в сообществах.

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

Заключение

В ходе данной статьи мы ответили на вопрос: “Что нужно, чтобы стать программистом?”, приведя при этом несколько главных факторов. Было сказано, чем должен обзавестись начинающий программист, что он должен сделать в первую очередь.

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

Неотъемлемым критерием обучения является практика. Посещая только занятия, вы не сможете научиться программированию. Можно получить знания, но их использование остается исключительно за вами. Нужно постоянно практиковаться, со временем усложнять программы. Только так вы со временем сможете освоить профессию “программист”. Колледж также может вам помочь в этом деле, но уровень подготовки там будет немного иным, нежели в высшем учебном заведении, что и понятно.

Если вам не удалось поступить на данную специальность в образовательное учреждение, то отчаиваться не стоит. Учиться на программиста можно и самому, уделяя этому делу соответствующее время.

www.syl.ru

Закончил учиться на программиста - как быть дальше? — Хабр Q&A

Да, вот такой странный вопрос xD. Ну вообще немного о себе. Возможно след. обзац можно и не читать, но как мне кажется так куда понятней чего я хочу выяснить.

ИсторияУ нас небольшой город. Жителей не много, но благодаря одному крупному градообразующему предприятию город стабильно развивается. Исходя из потребностей этого предприятия востребованными оказываются по большей части рабочие профессии (электрики \ сварщики \ токари \ химики и т.д.). А вот меня какой-то черт потянул учиться программистом :). Учиться пошел в местный колледж, по сути — основной источник рабочих кадров в городе. Ну и вскоре, как это часто бывает, выяснилось что профессия конкретно программиста там дается довольно посредственно. Был неплохой курс математики, благо был очень сильный педагог (впрочем я умудрился проспать половину лекций), а всё что касается непосредственно программирования и алгоритмизации давалось сильно на базовом уровне. Т.е. чтобы было понятно: за 4 года обучения «программист» колледжа осваивает Delphi на уровне работы с компонентами, и базой данных в виде MS Access. Также на лекциях по БД преподавали и какую-то очень старую версию FoxPro. Сам я увлекался Delphi ещё в школе, пилил какие-то мелкие программы — игрушки для себя, но в общем где-то к 2-3 курсу мне наскучило, и стал смотреть в сторону других языков программирования. Ну тут уже на всё подряд смотрел. И на С++ успел посмотреть, и на Java (правда в плане разработки приложений под Android), немного C#, и даже 1С (прости господи Х_х). Но выбор остановился на Python-е, т.к. язык показался очень удобным, а наличие таких фреймворков как Django позволяет увлекательно осваивать Web рзработку, к которой раньше не прикасался. Прочитал книгу Лутца, немного Пилгрима, ну и статей из интернета \ хабра конечно. Django изучался по паре уже не очень свежих книг на русском языке, а также Django Book, документации, и материалам \ переводам djbook.ru конечно. В общем увлекаюсь этим уже где-то год, всё также пишу всякую мелочевку для себя, небольшие сайты (опять же по большей части обучения ради \ для себя), тулзы и т.д.

Ну а теперь ближе непосредственно к вопросу. Обучение в колледже подошло к концу. Сдал ГОС-ы, получил диплом, и теперь встал вопрос — что делать дальше? Программисты в городе практически не нужны. От части работу более менее реально найти системным администратором, а вот программисты получают от 5-8 т.р. в месяц в лучшем случае, и то придется поискать. Забавно конечно, но опять же сопоставимо с работой дворника, который у нас получает столько же :). Внутренний голос подсказывает что нужно или профессию менять, или валить отсюда в город по больше, продолжать образование в ВУЗ-е, икать работу в крупных городах. Больше склоняюсь ко второму варианту, т.к. профессия нравится. Ну и вопрос состоит в том — чего посоветует хабр, как жить дальше?) Колледж дал посредственное образование, с которым далеко не уехать — какие технологии, книги почитать для дальнейшего развития? И так чего знаю на данный момент:

  • Delphi (впрочем думаю тут можно ещё обновить знания, времени с момента активного изучения прошло порядком).
  • Python — на уровне книг, описанных выше. Джуниор получается.
  • Django — на уровне джуниора, как и в случае с Python.
  • Ознакомился с версткой HTML \ CSS, прочитал небольшую книжку по JavaScript, jQuery. В общем без фронтэнда сейчас как не крути никуда.
  • Немного ознакомился с облаками (GAE, Amazon EC2).
  • Что касается баз данных, то в голове всё ещё крутятся SQL конструкции от колледжа на базе MS Access \ FoxPro, хотя конечно модели данных в Django развращают \ SQL как язык постепенно забывается. Также немного поигрался с MongoDB, прочитал перевод небольшой книжки (по моему переводил кто-то из юзеров Хабра, но сейчас не найду ссылки). Но в вакансиях как я понимаю по большей части просят PostgreSQL, MySQL — кто-то подскажет что осваивать \ хорошую литературу?
  • Ну и с системами контроля версий, в виде Git-а, и GitHub тоже поигрался.
  • Английский никогда целенаправленно не учил, но т.к. документация как правило на англ., то с годами документацию худо-бедно читаю.

В общем у меня сейчас есть как минимум 5-6 месяцев времени, которое можно потратить на себя \ дальнейшее развитие \ планы на будущее. Задумывался продолжить образование в ВУЗ-е на очном отделении, но т.к. ЕГЭ после колледжа не сдавал, то оплатить обучение на платном отделении в крупных городах без работы весьма проблематично. Есть вариант идти на заочную форму обучения \ попробовать перебраться в Москву (благо есть где пожить первое время), и поискать работу. Но вот тут как раз вопрос к юзерам Хабра — изучением чего конкретно мне стоит заняться, чтобы заполнить пробелы в моих знаниях, чтобы проще было найти место? Некоторые советуют вообще забить на обучение, а идти и искать место работы (обосновывают тем что на месте, в команде, и на реальных задачах с опытом приходит куда больше, чем с книгами). Понимаю что вопрос крайне размыт, и всё же — как на моем месте поступили бы вы, что посоветовали изучить, куда двигаться дальше? Спасибо.

qna.habr.com

где учиться, зарплата, плюсы и минусы

Инженер-программист – специалист, занимающийся созданием программного обеспечения, предназначенного для операционных систем вычислительных машин. Профессия относится к типу «человек-знаковая система», подойдет для абитуриентов, которые любят изучать информатику и математику. Профессия подходит тем, кого интересует физика, математика и информатика (см. выбор профессии по интересу к школьным предметам).

Читайте также:

Краткое описание

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

Особенности профессии

Инженеры-программисты необходимы в разных сегментах, ведь в них заинтересованы промышленные предприятия, производители бытовой техники и инноваций, а также компании, занимающиеся созданием IT-продуктов для бизнеса. В обязанности инженера-программиста входят следующие работы:

  • разработка программ в соответствии с техническим заданием, тестирование и отладка;
  • выбор подходящих языков программирования;
  • усовершенствование ранее созданных программных решений;
  • контроль процесса внедрения и использования программных средств, техническое сопровождение;
  • создание технической документации и инструкций по использованию ПО, соответствующих установленным требованиям;
  • разработка и внедрение систем, направленных на автоматическое тестирование ПО.

Это лишь малая часть обязанностей, профессия связана с постоянной аналитикой, технической работой, требует глубоких знаний в области математики, информатики и смежных дисциплин. Инженеры должны знать несколько языков программирования, а также английский на уровне Independent User (B1, B2) и выше. Иностранный язык необходим для вед

www.profguide.io

Сколько нужно времени чтобы научиться программировать? — Хабр Q&A

Смогу ли я самостоятельно изучить программирование до такого уровня чтобы устроиться на работу?(книги, видео уроки, гугл)
Да (Я сам такой же. Изучаю программирование уже года 2.5 (последний год конкретно, до этого так), но так и программировать качественно сам до сих пор не умею, т.е. именно писать свой source code, кот. был бы приемлем на профессиональном уровне, хотя и изучал и Swift, и Java, и даже C++, и Python. Копировать чужие программки и код - это не программирование, a обучение и дрочилка.
Сколько времени это займет?
В зависимости от сферы в какой хотите работать
(Для клЕпания сайтов - front end: недолго, для создания своих AI движков: очень долго)
Я лично, например, решил сконцентрироваться сейчас только на Python. По сути, если научиться капитально программировать (опять же, именно программировать(!), то после любой язык прогрраммирования (а для начальных прогеров синтакс) дается очень легко, т.к. понимаешь а) структурирование, б) архитектуру решения задач и в) собственно построение этого решения.
Я начинал с изучения со Swift'а для создания приложений на Iphone. С одной стороны рад, что начал с более сложного языка (а Swift - это intermediate язык по сложности), с другой нет, т.к. это было не программирование, а попытка копипастить откуда можно, чтобы что то работало, т.е. попытка сшить из носовых платков штаны, собственно, по сравнению с брюками нормальными от пиджака, также получались разноцветные шаровары, да еще и на соплях, да еще и если получались..
С чего лучше начать?
Начните с языка Python, самый легкий. Если есть английский:
1. "Learn to Program with Python" by Irv Kalb
2. www.udemy.com курсы Jose Podilla - рекомендую почти все
3. найдите сайт фоксфорд с лекциями по подготовке к ЕГЭ Тимофея Хирьянова, а потом для закрепления пройдите и все его курсы для 1 курса МФТИ (все есть на youtube)

Обязательно ли идти в универ?
Нет. По сути, если взяться конкретно за это (т.е. заниматься с 8 утра до 8 вечера, 6 дней в неделю, где то полгода-год), то можно закончить всю университетскую программу самому. Если еще есть хороший наставник, кот. подсказывает то за полгода точно можно даже хакером стать. Я все учил сам, что значительно и увеличило время изучения, так как иногда приходилось делать круги.
20 лет не поздно?
Да хоть в 60, если мозги работают. Самое главное желание.

PS От Себя.
По сути, программирование - это 3 этапа
а) структурирование, т.е. разбивка задачи на транзакции, для чего нужна логика, усидчивость и немного мозгов, т.е. само программирование здесь почти нулевое (больше нужно даже problem solving skills, но это уже отдельных навык, связанный с след. пунктом)
б) перевод затем всего этого структурирования в математический язык и алгоритмы,
т.е. знание алгоритмов, структур данных, паттернов итд итп всяких intermediate и advanced программных штук - что начинающий поймет после изучения базового синтаксиса, а также что не мало важно хороший уровень математики (матан, дискретка, линейная алгебра - 3 в особенности, ну и далее статистика, итд итп, т.е. по специализации)
c) и затем перевод это все в синтаксис, язык программирования, что со знанием базы уже становится очень просто

PPS проблема что пункт б) практически нигде не отмечают, особенно в курсах для начинающих, и в основном преподают тоже качественно учителя в ВУЗах, т.е. люди, кот. реально умеют программировать и писали, код, а не те, кто выучил синтаксис, а реальной практикой на профессиональном уровне никогда не занимались в своем большинстве

qna.habr.com

Как найти свою первую работу программистом? От резюме до испытательного срока / Mail.ru Group corporate blog / Habr

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

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

Итак, как же новичку получить первую работу?


Оно должно как-то называться. Существуют два варианта.
  1. Допустим, вы программировали на разных языках. В школе наверняка писали на Pascal, а потом что-то делали на C++. Если вы постарше, то, возможно, знакомы с Delphi. Поэтому в названии резюме можно указать все языки, на которых вы писали. Авось какой-то заинтересует потенциального работодателя. Например, так: «Программист: delphi, python, php, html, java, c#, ruby, scala».
  2. Можно указать, что вы специализируетесь на чём-то одном, например на Python. Обычно, если в названии резюме перечислена куча языков, то понятно, что вы не умеете ничего. Всего коснулись поверхностно. В глазах работодателя вы будете человеком-оркестром, который пришёл на прослушивание в консерваторию. Не надо так делать. Зачёркиваем длинную простыню и оставляем просто «Программист на Python». Повышайте свою самооценку, не акцентируйте в резюме неуверенность в себе, связанную с нехваткой опыта.

Из этого следует правило: выберите один язык программирования и специализируйтесь на нём. В университете я писал на С++, потом понял, что связанные с ним вакансии меня не очень прельщают, поэтому надо двигаться в другом направлении. Я выбрал для себя C# и Java. Мне они оба очень понравились, и я долго не мог определиться, какой мне больше по душе: тут есть такая-то фича, здесь такая, казалось бы, одинаковые. Я купил две здоровенные толстые книжки — по C# Эндрю Троелсена и по Java Брюса Эккеля. На каждую я потратил по две недели и начал откликаться на вакансии по обоим языкам. Думал, куда раньше возьмут — в тот язык и буду углубляться. Сейчас я понимаю, что переложил ответственность за выбор языка с себя на мироздание, на судьбу, на работодателя.

Приходя на каждое из собеседований, я чувствовал себя неуверенно. На обоих языках я писал одинаково слабо. Не надо было так делать. Надо было принять волевое решение. Не можете выбрать — киньте монетку. Главное, определиться с каким-то одним языком.

Какой язык лучше всего указать в резюме? Языков много, но они очень часто друг друга взаимозаменяют. Не все из них живые. Основное правило — выбирайте популярные языки, не надо брать экзотику. Не нужно слушать, что какой-то Haskel очень крутой, классный, умеет делать всё и вся, а функциональные языки программирования такие волшебные… Каждый хвалит свой язык.


Работодателям нужна не экзотика, а те технологии, по которым много специалистов. Решайте сами, нужно ли учить язык, по которому вы потом не сможете найти работу?

Так что при выборе языка обращайте внимание:

  • на его популярность;
  • на решение задач, которые вам интересны;
  • на простоту освоения: на начальном этапе лучше выбрать попроще.

Сейчас по количеству вакансий наиболее востребованы следующие языки: Javascript, PHP, Java, C++, Python, C#, Ruby, Swift, Objective-C. Выбрав какой-то язык, скорее всего, вы на нём и остановитесь. Может быть, через два года разочаруетесь или решите перепрофилироваться. Но это будет немножко больно. С другой стороны, свой опыт вы сможете легко применить в другой сфере деятельности.
  • Если речь пойдёт про frontend — то есть разработку визуальной части сайтов, — то здесь всё просто, нужны три языка: HTML, CSS, JavaScript.
  • А вот для разработки серверной части вариантов много. Самый популярный язык — РНР. Мне на каждом докладе говорят, что про РНР плохо отзываются, какой-то он не такой. Многие высказывают гипотезы, что он умрёт. Но ничего подобного, половина сайтов написана на РНР, половина вакансий — на РНР, ВКонтакте — на РНР, как и многие другие крупнейшие проекты. Никуда язык не денется. Если в нём будут критические проблемы, то их просто исправят. Появился Ruby on Rails, классный движок — ну, ничего страшного, на РНР стали появляться фреймворки, в которые внедрили аналогичные фичи. Всё хорошо. Отдельно скажу, что Python многих прельщает простотой и универсальностью.
  • С точки зрения мобильной разработки есть всего два варианта. Если хотите писать под Android — это Java. Если под iOS — Swift или Objective-C. И то и другое — хорошие решения.
  • Разработка под desktop и серверы: Python, Javaб С++ или C#. Здесь есть простор для метаний. Python попроще, чем остальные. На Java можно писать под Android. На C# — углубляться в разработку игр и сайтов. C++ больше подходит для тех задач, где требуется высокая скорость работы. В остальном у них возможности совпадают, просто на Java сайты пишут реже.

Возникает резонный вопрос: если начинаешь с нуля, то имеет ли смысл изучать сразу новый язык? Например, в Apple перешли с Objectivе-C на Swift, потом появился Swift 2 и 3. Обычно я консервативен и считаю, что новое не всегда оправданно и действительно выстреливает. Появляется новый язык, по нему нет вакансий, но где гарантия, что они появятся потом? Может, на нём так и напишут с пяток проектов.

Что касается Objectivе-С и Swift, я давно присматриваю за этими языками, и буквально на днях количество вакансий на Swift сравнялось с Objective-C. Мое мнение, это очень серьезный показатель, что Swift будет только набирать обороты и со временем может вытеснить Objective-C.


Итак, мы выбрали язык и указали его в резюме. Далее перечисляем технологии, которые мы знаем. Давайте снова разбираться, что круче. Допустим, вы программируете на PHP. Имеет ли смысл писать, что вы знаете С, С++, Pascal, C# и так далее? Не надо перечислять все технологии, которые напрямую не относятся к вашей компетенции. Надо назвать вакансию «программист: РНР». В таком случае работодателю неинтересно, что вы когда-то писали на С и Visual Basic. Весь этот длинный хвост можете не указывать.

Есть и другой вариант. Допустим, я программист на РНР, но знаю все эти технологии, потому что они относятся к веб-разработке: и РНР, и YII2, и HTML, разные фреймворки. Если будете искать вакансию веб-разработчика, то наверняка увидите здоровенную простыню дополнительных требований с кучей умных слов. И многие этого пугаются, особенно в веб-разработке, страшно, что надо столько знать… К этому надо стремиться: знать Webpack, работать с разными БД и так далее.

Многие для повышения авторитета сразу пишут, что я и это знаю, и это примерно знаю, но я новичок и готов получать пока 15—30 тысяч, и опыта работы у меня нет. Какое будет впечатление у работодателя? То же самое: человек-оркестр.

Есть и другая проблема. Допустим, работодатель поверит, что вы всё это знаете. Он же на собеседование придёт с этим списком, ткнёт в любую технологию и скажет: «Теперь мы говорим про React, что ты знаешь про него? А это что? А это? Ясно, React мы не знаем».

Вычёркиваем.

«Хорошо, поговорим про MySQL, напиши мне транзакцию, которая делает то-то и то-то».
«Ну, я в MySQL установил только среду разработки, два select-а сделал…»

MySQL тоже вычеркиваем. Всё остальное он даже смотреть не будет. Работодателю уже будет неинтересно, что вы полгода жарили РНР: он поймал вас на вранье. Так что зачеркиваем всё перечисленное.

От джуниора никто не ожидает, что он сразу полетит в космос. Работодатель, как правило, адекватный человек. И он понимает, что джуниор будет знать один язык программирования и в лучшем случае поверхностно разбираться во фреймворках. Работодателя это устраивает, потому что ему нужен человек, который заберёт рутинные операции у ведущих разработчиков. Поэтому пишите о своих знаниях максимально честно.

Более того, даже не пытайтесь ознакомиться со всеми этими многочисленными технологиями. Если вы РНР-программист — так и напишите, что знаете РНР и немного HTML и CSS для верстки. Ещё знакомы с одним фреймворком — всё, работодателя это устроит. Он не будет вас гонять по YII, поскольку вы и не указали, что знаете его. Работодатель понимает, что вас можно гонять по РНР.

Если так получилось, что вы уже много чего потрогали, то честно напишите: поверхностное знакомство с такими-то технологиями. Может, для работодателя это будет плюсом.


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

Когда я набирал в команду джуниоров по C#, мы опубликовали вакансию и в течение двух-трёх недель получили 50 откликов. У нас не было кадровика, поэтому мы пошли программерским путём: всем кандидатам выслали тестовое задание. Кто его сделал, проходил дальше. И мне как работодателю не были интересны сертификаты и диплом. Я даже на резюме не смотрел, пока человек не присылал мне решение тестового задания. Но для кадровика это может быть важно.


Очень важная вещь на этапе отбора. Если у вас есть портфолио, то работодатель-программист сможет понять, в состоянии ли вы решить задачу аналогичную той, которую вы уже решали.
Что можно написать в своём портфолио? Если вы хотите разрабатывать сайты, то просто придумайте себе задачку и решите её за необходимое время. Сделайте небольшой сайт и выложите его, лучше всего на Github. И напишите: я создал небольшой интернет-магазин, использовал такие-то технологии, вот код. Для работодателя это будет показателем, что вы ещё и про Git знаете. Он понимает: если я возьму этого новичка на работу, он мне за два дня сделает примерно то же самое, с чем сам разбирался месяц. И не надо будет ему платить за то, чтобы он выучил, что такое Bootstrap, познакомился со всякими нужными штуками. Он сам уже это изучил и теперь в состоянии решить задачу за пару дней. Поэтому не пренебрегайте портфолио. Вам оно очень сильно поможет.
Если он у вас есть, то опишите его. После этого вас будут отрывать с руками. После окончания университета я получил два отклика на своё резюме, а через год просто не знал, как его спрятать. Потому что всем нужны программисты, и кадровики видят: этого парня вытерпели год и не уволили, он не облажался, значит, толковый человек. Если я его возьму к себе на работу, то, скорее всего, я тоже смогу терпеть его как минимум год, его код не надо будет выбрасывать.
Резюме готово, что делать дальше? Прежде чем откликаться на вакансии, надо немного психологически настроиться, чтобы процесс пошёл правильно. Представьте свой идеальный рабочий день, что бы вам хотелось получить в итоге? Иначе мы просто будем белкой в колесе, станем бежать за какой-то мечтой, каким-то счастьем. Представьте, как выглядит ваш офис, ваши коллеги, какое у вас самоощущение, какими проектами вы занимаетесь. Просто настройтесь на то, какие эмоции вы будете испытывать, когда станете ходить на работу. Сделайте запрос мирозданию: «Хочу, чтобы было так, так и так». И успокойтесь, всё у вас будет хорошо.

Расскажу о том, как я устроился в компанию GeekBrains. В какой-то момент мне надоело программировать. Это классное занятие, я пять лет ему отдал, но меня не очень удовлетворяли цели компании, в которой я работал. Я подумал, что мне было бы интересно открыть свою школу и учить людей. Дать им возможность получить новую специальность, новую профессию. Потом я увидел вакансию и начал преподавать в GeekBrains, совмещая это с основной работой. Затем я просто попросился к ним на работу.

Так выглядел мой разговор с генеральным директором GeekBrains.

Гендир: «А что ты умеешь делать? Ты на C# программируешь, а мне нужен Ruby».
Я: «Я не хочу программировать, я умею то, умею сё».

Через две недели я вышел на работу.

Наверно, вы представляете: «Я найду работу так: выложу резюме, на него откликнутся, я приду на собеседование, и всё получится». Но работа может найти вас совершенно другим способом. Например, вы зарегистрируетесь на фрилансерском сайте, выполните какой-то заказ, и у вас появятся постоянные клиенты. Или друг пригласит вас к себе работать. Не зацикливайтесь на способе достижения цели. Просто будьте открыты к предложениям, откуда бы они к вам ни пришли.

Не расстраивайтесь, если вас не позвали на собеседование после того, как вы откликнулись на вакансию. На начальных позициях предложение сильно превышает спрос. Я сам допускал эту ошибку, находил одно предложение о работе и думал: блин, мне это подходит, тут и компания недалеко от моего метро, и требования несложные. Мне кажется, что я им классно подхожу, а они, заразы, даже не посмотрели моё резюме. Ну что такое? Наверное, во мне что-то не так. Или они прочитали, но ничего не написали. Всё, резюме плохое, надо дорабатывать портфолио, что-то ещё делать. А на самом деле, может, им просто некогда. Они уже давно взяли кого-то на работу и просто не стали снимать вакансию, потому что у новичка ещё не закончился испытательный срок.

Не парьтесь, ребята. Отправьте 100, 200, 300 откликов, сколько найдёте. И законом больших чисел вы сообщите мирозданию, что реально хотите работу. Вас пригласят на пять собеседований, на одном из них вы устроитесь на работу — всё. Если вам посылают тестовое задание, не пренебрегайте им. По моему опыту, 90 % кандидатов отваливаются, когда получают тестовое задание.


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

Если вас взяли на испытательный срок, то не надо всех заваливать вопросами, иначе подумают, что вы дурак. Но не надо кидаться и в другую крайность, когда начинающему разработчику дают задачку, и он уходит в себя на три дня, потому что сам пытается во всём разобраться. А работодатель думает: неужели вам мало трёх дней на такую простую вещь? Так что не стесняйтесь задавать вопросы. Если вы больше часа занимаетесь какой-то задачкой и у вас не получается, подойдите к старшему, спросите, он вам поможет, всё будет хорошо.


Друзья, и напоследок напутствие: не бойтесь экспериментировать. Ищите себя, находите то, чем вам нравится заниматься. Нет ничего хуже, чем десять лет просидеть на нелюбимой работе из страха, что не сможете устроиться на другую. Если вам нравится программировать — начинайте обучаться этому ремеслу, совмещайте учёбу с основной работой. Если хотите — приходите к нам в GeekBrains, и мы вам обязательно в этом поможем. Удачи вам, и до новых встреч!

habr.com


Смотрите также



© 2010- GutenBlog.ru Карта сайта, XML.