Все статьи: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105
|
Если вы решили стать программистом
Info 10.03.2016 - 01:11 Нусс, вы приняли решение стать программистом
Не так давно я получил занятное письмо (автором которого была девушка). Её интересовало, что необходимо знать и уметь, чтобы работать программистом, с какого языка программирования лучше всего начинать, на какие курсы программирования пойти и с чего стоит начинать вообще. Я считаю, что это очень любопытный вопрос, в котором стоит разобраться, чем сейчас мы и займёмся.
Есть несколько немаловажных обстоятельств, на которые я обращу ваше внимание – первое, это то, что в письме стоял вопрос именно о веб-разработке, и естественно девушка получала ответы именно на него. Не взирая на это, я постараюсь дать ответ на более всеобъемлющий вопрос – что нужно делать, что бы стать программистом хотя бы в какой-то отрасли. А второе это то, что я не считаю себя профи программирования. Но всё же я могу дать кое-какие полезные сведения, для старта, так как уже какой-то период времени работаю программистом. И не стоит забывать, что на этот вопрос нету единожды верного ответа.
Среди народа есть мнение, что программист схож с художником, пишущим свои картины или лепящим скульптором. В общем, является сродни творческим личностям. Может я раньше так и считал, но за последнее время моё мнение разительно изменилось. Сейчас я уверен, что изначальная суть работы программистом – это решение задач, а всё остальное уже после. Следовательно, вот вам один из советов – что бы понять, какими инструментами вы намерены работать (языки программирования, ОС, СУБД и т.д.), необходимо сделать выбор в двух вещах:
- Какой тип задач вам интереснее всего решать (короче говоря, что вам ближе всего по душе)? Софт для мобильников и планшетов, игры на ПК или приставки, антивирусы или научные изыскания? Во - первых, около 33% жизни среднестатистического человека проходит в работе (кстати говоря на сон уходит столько же времени) и я считаю, что эти 33% «рабочих» процента не должны быть скучными. Во – вторых чего вы хотите непосредственно от себя, посвятив себя программированию? Вы задаётесь целью работать на «большую» IT-компанию и, заработав много денег, улететь жить в другую страну или город, или же вы ищите компанию со свободным графиком и отсутствием дресс кода?
- Ответьте себе на вопрос, сформулированный примерно таким образом – «много моих друзей и знакомых работают на компанию Х и они рассказывали, что там платят много денег и вообще работать круто». Дав ответ на него, вы получите ровно половину ответа, на вопрос написанный выше. Ответив себе эту часть вопроса, вы сможете, просмотреть вакансии и понять требование каких навыков и умений, ожидают от кандидатов на рабочее место. Или же за мизерные деньги устроится стажером, в ту же компанию Х (или в похожую), и обучится всему там. На сегодняшний день, это самая обыкновенная практика. Компаниям сейчас не хватает специалистов, и они с удовольствием берут студентов за полставки. Работая таким образом, можно написать дипломную работу.
Я не так давно писал своё видение программирования, как две больших сферы – «низкоуровневая» и «высокоуровневая». Ничего страшного, если вы не читали мою заметку на эту тему, но лучше всё же прочтите, так как я не хочу повторяться. Вперёд, у меня времени предостаточно.
От выбора вашего пути зависит ваша карьера в будущем, но это сугубо моё мнение. У вас не получится одновременно быть профессионалом по всем направлениям (создание дров на Windows, разработка пользовательских интерфейсов на мобильники и работа над созданием искусственного интеллекта). По сути кое-как ещё можно сменить характер деятельности, к примеру, переучить себя с веб-программиста работающего в Python, на мобильного java-разработчика, а вот скакать меж сферами уже не получится. Тут даже суть не в том, что Python – программист ну никак не научится писать дрова, а в том, ему попросту не дадут работать над ними без надлежащего опыта.
Поэтому ответственно относитесь к выбору направления. В «низкоуровневой» нише абсолютно понятен язык программирования, который вы будете использовать для работы, так же она привлекательна тем, что в отличии «высокоуровневой» не настолько зависит от моды (новые фреймворки, языки программирования и тп). А вот «высокоуровневая» имеет плюсы в том, что вы практически не будете париться со всякими ошибками, типа переполнения буфера обмена и утечками памяти. Вас не будет заботить, сколько тактов процессора или метров памяти ест ваше приложение. У вас будет широченный выбор способов программирования, СБД и других инструментов.
Не обольщайтесь выбором «высокоуровневой» ниши, вы всё равно должны знать ассемблер, Си, C++, и как устроены операционные системы. Обратно же, квалифицированный Python-программист, найдёт труднодоступные места своей программы и сможет переписать их на Си, в то время, как умелый сишник понимая как сэкономить время, создаст шаблонынй код, с помощью сприат в Phyton и потом потестит его другим скриптом в том же Phyton.
У вас не должно быть желания, стать не бог весть каким программистом, на что я искренне надеюсь. Наше ответвление всё время в процессе изменения. На сегодняшний день, практика считавшаяся хорошей, абсолютно устарела и является питфоллом. Не занимающийся саморазвитием программист, очень скоро отстаёт от своей сферы. В любой нормальной компании, таких «никаких» программистов быстро отличают от «хороших». Имея желание работать на уровне, общаться с развитыми и развивающими сотрудниками и решать сложные но интересные задания, вы должны понимать, что без саморазвития тут никуда.
Чтение книг – это во первых очень важный момент саморазвития, а во вторых тема сама по себе немаловажна и я уверен, что рано или поздно напишу по ней пост. Читать надо не художественную литературу, не блоги и не новостную ленту, а именно (!) книги по программированию. Старайтесь посвящать чтению много времени, занимайтесь этим во время еды, по пути на работу и обратно, на сон грядущий и после него. Хватает вполне себе не маленьких книг о программировании, и вы ими просто завалите свою комнату, так что лучший вариант – заниматься чтением с планшетника.
Да, читать это, конечно же, хорошо, но о чём, спросите вы? Желательно читать о том, что непосредственно связано с вашей работой и её особенностями. Не забывайте читать о СУБД, алгоритмах и системах контроля версий, об ОС и просто книги о разработке, для начала сойдут вот эти авторы: Спольски, Макконнелл, Брукс и Фаулер. Вся эта информация вам понадобится везде, в какую сферу вы бы не подались. Не забывайте освежать познания в языках программирования, новыми, более современными. Поверьте мне на слово – вы потратите время не зря.
Конечно же, саморазвитие подразумевает под собой, не только чтение книг. Но не стоит забывать, что профессионалом вы станете со временем. Необходимо писать свой и читать другой код, других программистов, это поможет набраться опыта. Попрактикуйте все возможности программного языка, который вы увидели в осваиваемой книге. Понаблюдав за своими каждодневными (рутинными) задачами, попытайтесь уменьшить время на их выполнение, написав программку. Принимайте участие в конкурсах по программированию и не забывайте участвовать в проектах с открытым кодом доступа. Создав свой блог, публикуйте там отрывки своего кода, попытайтесь почерпнуть знания из того, что рассказывают программисты с бОльшим стажем работы, чем у вас. Смело спрашивайте совета на форумах, если у вас что-то не выходит.
Большая часть данных к фреймворкам и библиотекам написана на английском языке, так что не забывайте подучивать его. Кстати говоря, самые полезные книги о программировании, так же выходят в продажу на международном языке. К сожалению, к тому времени, когда их переводят, знания в них устаревают и становятся бесполезными. Никто не говорит о свободном письме и общении на английском языке или восприятии его на слух, однако уметь свободно читать на нём вы обязаны.
И так, не забываем, что на программиста надо учится не только дома. Невзирая на то, что в мире хватает специалистов, которые качественно выполняют свою работу и без спец. обучения, не стоит обольщаться. Поверьте, гораздо проще научится этому в специализированных заведениях, нежели самостоятельно.
В общей сложности, приблизительно так я всё это и вижу. Не стесняйтесь задавать свои вопросы, или дополнять этот пост своей полезной информацией, я буду очень рад и признателен вам.
Автор статьи: Виталий Дзю (Компьютерные курсы "Столица").
Немного вашего
внимания на то, что не так значимо, как принято считать.
Я уже упоминал о том, что если вы будете уметь находить интересные задачи в любом проекте, это явно станет вашим преимуществом. Не стоит бросать работу, руководствуясь их отсутствием в вашем проекте. В таком случае нет никаких гарантий, что новое место работы вам не наскучит так же скоро, как предыдущее. Займитесь поиском не просто интересных задач, а возьмитесь за, казалось бы, полную безнадегу, и тогда, решив ее, вы сможете реально преодолеть самого себя, доказав всем на что вы способны. Поверьте, таких задач предостаточно в любом проекте.
Игрушки в виде новых технологий. Не стоит испытывать непроверенные решения на работе, тем более, что здесь участвуют чужие финансы, а лучше прибегнуть к стабильным методам решения, проверенным временем. Играться, развлекаться, испытывать что-то новое можно и дома, а на работе вы должны предоставлять действенные методы решения задач. Конечно, у любого правила есть исключение. И если вы столкнулись с тем, что привычные решения здесь неуместны, тогда не обойтись без экспериментов, в поиске новых решений. Поэтому, не исключайте возможности использования новых инструментов, но и не зацикливайтесь на этом.
Если хорошенько задуматься, то не так уж и важно, как звучит ваша должность в трудовой, как выдается зарплата, насколько престижна компания, в каждой работе нужно уметь находить плюсы и переливать их в позитив, а главное – уметь их видеть.
Ну что ж, я постарался изложить вам все мои мысли, обращайтесь с вопросами и комментариями, с удовольствием их приму!
|