Вот вроде бы учишься чему-то, пилишь какие-то проектики маленькие, сдаешь все лаб. работы, курсовые, экзамены в университете на пятерки по предметной области, выходишь на биржу труда и понимаешь, как греческий философ: "Я знаю, что ничего не знаю". И действительно, каждый раз, каждый день ты сталкиваешься с тем, что уровень твоих знаний совсем низок, и непонятно, могу ли я вообще устроиться на работу.
Скажите пожалуйста, какими базовыми знаниями должен обладать разработчик и, что он должен уметь (легко создавать поисковые системы, или же системы бронирования) вообще, когда даже на сайте фрилансе для тебя каждая новая задача - открытие? Как правильно развиваться, учиться, чтобы за всем поспевать?
ps: ну, на первом курсе стремно, когда 80% твоей группы, обучаясь по специальности - программист, получают тройки и даже не хотят быть программистами
По-моему, Вы просто в «долине смерти». Есть такой этап в развитии программиста. Сначала восторг от «Hello, World», когда выучил синтаксис первого языка и кажется, что всё по плечу. Потом понимаешь, насколько много нужно знать всего и вся, и понимаешь, что не знаешь вообще ничего, барахтаешься от источника к источнику, везде какая-то муть. Это и есть «долина смерти», через неё немногие проходят. Но через год-полтора упорных трудов кругозор расширяется, поднимается вера в себя, и всё перестаёт быть таким уж мрачным. Просто наберитесь терпения и не опускайте руки.
Современный веб-разработчик это уже больше чем писать маленькие проектики.
Надо хорошо знать основной язык программирования, следить за новинками, уметь их применять. Это база. Но надо знать и смежные области, как например тестирование, системы контроля версий, немного devops, надо понимать и уметь работать с современными JS и PHP фреймворками, иметь хотя бы основные понятия о шаблонах проектирования (это поможет в разработке и коммуникации с другими разработчиками).
И главное - настроить себя на постоянное развитие. Технологии развиваются быстро, надо успевать за ними.
Разработчик должен уметь решать все адекватные и не очень адекватные задачи, которые ставит заказчик. Не зацикливайтесь на умении решать какую-то конкретную задачу. Вы не должны уметь создавать поисковую систему или систему бронирования. Что от них толку, если поисковая система чаще всего строится на готовых компонентах, а вероятность, что следующий ваш проект будет система бронирования - примерно 1 из 100.
Разработчик должен уметь создавать систему, которая будет решать поставленную задачу, и которая имеет запас для расширения, чтобы маленькое дополнение от заказчика не заставило делать все с нуля. Должны знать ООП в идеале, так как сейчас это используется почти везде. Должны знать, что такое REST, SOAP, XML, JSON, HTTP, должны уметь настроить web-server так, чтобы сайт работал и можно было заняться разработкой (настройка продакшна, установка какого-то специализированного софта - уже задача админа). Нужно знать, какие технологии/библиотеки существуют и где применяются, чтобы случайно не писать одностраничное web-приложение на jQuery.
Изучать досконально какие-то технологии, решать конкретные задачи просто так практически не имеет смысла. Никогда не знаешь, какой проект будет следующим и пригодятся ли эти знания.
Анатолий K: Согласен, практика всегда полезна. Я хотел донести автору, чтобы он не думал, что если он умеет решать какую-то конкретную задачу - значит он крутой разработчик.
легко создавать поисковые системы, или же системы бронирования
легко создавать поисковые системы .. ?!
Выберите себе специализацию, основной фокус, а смежные технологии смотрите по интересам. Не существует никаких универсальных веб-разработчиков, которые пишут и поисковые системы, и сайты на wordpress.
И лучше не сидеть на фрилансе, там может быть море разрозненных мелких задач, которые не повышают профессионализм.
trevoga_su: если у автора проблемы с самообразованием - это не значит, что у всех они есть.
не учится ничему на мелких задачах - берись за более сложные, зачем на форумах сопли пускать
Black Jack: Не совсем понятно, к чему здесь эта тема. Хотите подискутировать про женщин в программировании - задайте вопрос - и пришлите ссылку.
Программирование программированию рознь, я бы сказала, что очень много IT-позиций лучше женщинам подходят. Например, тестирование, интерфейсы, и тп
Black Jack: я не понимаю, к чему все это. Я в одиночку фрилансом не занимаюсь, и в целом никому не рекомендую долгосрочно работать с небольшими задачами.
Чтобы утверждать , что фриланс дает возможность расти, надо сравнивать с тем, насколько разработчик за такой же период времени вырастет в найме.
Антон Ф.: Вот это нормально, здесь вроде автор сопли пускает, что видит много незнакомых задач на фрилансе. Я ему порекомендовала не сидеть там, чтобы не распыляться.
Всего "3 уметь":
1. уметь понимать с листинга кода логику его работы
2. уметь гуглить нужную информацию за минимальное время
3. уметь пользоваться личным накопленным опытом и знаниями
Максим Иванов: если три дня не ел потому, что нет денег - значит, пора (-: Если сейчас студент, то через полгода-год хоть чему-то научишься и сможешь смотреть на сокурсников с вершин своего опыта, а не устроишься - так и будешь нубом ходить.
Вы говорите о создании поисковых систем, значит вы хотите иметь дело с серверной частью? В вашем же университете Вас научили делать грамотный деплой, использовать гит, багтрекер, *никс системы? Грамотный бэкенд рождается не там. Попроситесь джуном в студию, наберитесь опыта, а дальше сами поймете.
Присоединяюсь к Юлия Бедросова что веб разработчик понятие растяжимое. Знать все касаемое веб разработки невозможно. По крайней мере определитесь где вы хотите работать?