Что должен знать настоящий программист?

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


Я буду очень благодарен за конкретные ответы (алгоритмы, функции).
  • Вопрос задан
  • 39348 просмотров
Пригласить эксперта
Ответы на вопрос 17
AlexXYZ
@AlexXYZ
O Keep Clear O
Настоящий программист должен знать достаточно, чтобы пройти собеседование ;) Шучу, конечно. С такого вопроса начинаются священные войны. «Что должен знать программист?» Да ещё и настоящий?



Предлагаю зайти с другой стороны — а чего не должен знать настоящий программист? Эйншейн играл на скрипке (хотя я и не слышал) и хоть это и не относилось к физике, но и не помешало ему стать известным. Думаю, что ответ на вопрос надо искать не в перечислении знаний, относящихся к программированию. Так сказать ответ на вопрос лежит не здесь и не сейчас. В любой работе важно терпение и труд. И не только в профильной области. Готовься к тому, что надо будет работать по 12-14-16 часов в сутки возможно и не один год. Почти на износ, пока «догонишь» острие прогресса и поймёшь смысл поговорки «нужно очень быстро бежать, чтобы оставаться на месте, но чтобы двигаться вперёд надо бежать ещё быстрее». Пройдёт некоторое время и ответ на этот вопрос тебе не понадобиться, т.к. настоящие программисты, а точнее профессионалы, уже ответили себе на этот вопрос ;) Удачи.
Ответ написан
Комментировать
epic45
@epic45
Вот эта страница в свое время помогла мне разобраться в том, что я знаю и что не знаю:
Programmer Competency Matrix
Ответ написан
Shvonder
@Shvonder
Я думаю, что настоящий программист обладает хорошим аналитическим мышлением. Он способен расписать алгоритм решения какой-либо задачи на бумаге простыми словами, без использования языков программирования, а потом объяснить его маме на примере овец, собачек и лягушек. Хорошему программисту все равно на чем программировать, потому что основная сложность программирования — не знание конкретного языка, а именно способность правильно мыслить, по шагам, от общего к частному, от простого к сложному.
Ответ написан
Комментировать
r0ster
@r0ster
Настоящий программист должен уметь приготовить себе покушать (бич-пакеты не считаются, они не очень полезны), иначе будут проблемы со здоровьем -))
Ответ написан
Комментировать
taliban
@taliban
php программист
Это на самом деле риторический вопрос, нет определенных критериев, в некоторых яп нет замыканий, но там есть настоящие программисты.
Настоящий программист должен уметь думать и интересоваться своей работой. Если есть эти два критерия, то он сам найдет и замыкания, и бинарный поиск итд.
Ответ написан
Комментировать
Zorkus
@Zorkus
Добавлю к перечисленному — еще настоящий программист должен (ящитаю) знать хотя бы основные структуры данных (массив, связный список, стек, очередь, деревья, графы) и алгоритмы, все это не привязываясь к конкретному языку. А так же понимать хотя бы минимально понятие ассимптотической сложности (О-большое) по времени и по памяти.

Без этого трудно писать не-быдлокод.
Ответ написан
Комментировать
savant
@savant
Сильно зависит от языка. Если пишешь на С — будь добр знать стратегии управления памятью, врубаться в арифметику указателей, помнить про выравнивание данных и подобные вещи.

Если Java/C# — то паттерны проектирования, тонны библиотек для этих языков и ещё кучу всего.

Если С++ то всё вышеперечисленное

Если функциональщина — то лямбда счисление, замыкания, что там ещё есть…

В идеале — всё вышеперечисленное и умение выбирать инструмент соответствующий задаче.

Как-то так.
Ответ написан
Dzuba
@Dzuba
Еще могу добавить: основные паттерны проектирования, пару алгоритмов сортировки (bubble, quick), ну и базовый математический аппарат.
Ответ написан
Комментировать
CGS
@CGS
Должен уметь читать, желательно на английском. Любопытство и интерес к тому чем занимаешься.
Ответ написан
Комментировать
javax
@javax
Software Architect, Java Developer since 1996
Основные структуры данных — как устроены и как использовать. И когда.
Работа с соурс контролем и учетом багов.
Системы билда.
Регулярно читать статьи по своей тебе и близким темам.
Ответ написан
Комментировать
@Jazzist
Приходилось общаться с огромным количеством коллег. Для себя разработал некоторый тест — в процессе общения выявляю, знает ли товарищ программирование или нет. Большинство — немного ориентируются в каком-то языке, но с программированием, как таковым, не знакомы. Разумеется, они отсеиваются.

Что интересно — изучить программирование несложно. Помогут википедия, куча литературы, снаружи злые, но добрые внутри учителя на многочисленнейших форумах…
Ответ написан
Комментировать
tormich
@tormich
программист и гик.
Хотел было ответить, но уже все сказано! Спасибо Всем!
Ответ написан
Комментировать
Профессиональный программист должен знать:

— Основные алгоритмы, дабы не придумывать «велосипеды с квадратными колёсами»;

— Теорию БД и SQL, без них никуда. Все серьёзные проекты используют БД;

— Структуру и функционал системы, в которой работает программист. Он должен знать как и по каким правилам отдельные элементы системы взаимодействуют друг с другом. Под системой понимается не только язык программирования, но область приложения, которая может быть не связана с программированием. Пример, профессиональный программист АБС должен знать бухгалтерию кредитных организаций, как это не звучит дико.
Ответ написан
thebestzorro
@thebestzorro
Нужно читать книги, слова Билла Гейтса: «Если вы считаете себя действительно хорошим программистом..., прочитайте „Искусство программирования“». (Д.Э.Кнут)
Но, углубляясь в теорию, нельзя забывать о практике.
Ответ написан
Комментировать
sivabur
@sivabur
Заблокировали просто так!

1. Английский.
2. Основные алгоритмы.
3. Паттерны проектирования.
4. Asambler,WinApi(если прикладник под винду), c ,c++(хотя бы основы).

5. Глубоко знать основы языка на котором программируете.
6. Знать де находится оф. документация.(уметь ее пользоваться), после этого уже другие источники.
6. Лучшие практики языка.
7. Оптимизация.
8. СУБД(с какой работайте).
Ответ написан
Комментировать
@DileSoft
Настоящий программист — это тот, кто пишет настоящие программы.
Ответ написан
Комментировать
NikoM
@NikoM
Читать книги по программированию. Ориентироваться в новых технологиях, уметь выбрать подходящее решение для конкретной задачи.
Иными словами — постоянно совершенствоваться.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы