Привет, Хабр! Представляю вашему вниманию перевод статьи «27 things I wish I knew when I started programming» автора Ken Mazaika.
Заранее, прежде чем начинать программировать, хотелось бы узнать массу вещей, но вот 27 из них, которые приходят на ум. Самые важные я поставил под номерами 14 и 26, чтобы вам было интересно прочитать статью полностью.
Единственный способ стать лучше в программировании — это программировать. Не позволяйте помешать вашим начинаниям, парализуя себя анализированием.
Запоминание всплошную не имеет существенного значения.
Я использую Google для решения большинства своих проблем, как и многие из программистов.
Я делал беспорядочные изменения в своем коде и ожидал, что он сразу же заработает. Недостаток этого подхода в том, что проблемы собираются одна поверх другой, и выяснить, что пошло не так, становится затруднительно.
Обсуждение кода и сотрудничество с другими начинающими разработчиками для большинства людей — лучший способ научиться.
На пути к умению программировать вам встретятся сообщения об ошибках.
Чтобы расти в условиях, когда «наворотить» это неотъемлемая часть дела, вы должны встречать проколы устойчиво.
Вопреки голливудскому клише, чтобы быть программистом, вам не нужен безумный каскад мониторов. Компьютер, которым вы владеете сейчас, вероятно, достаточно хорош, чтобы начать программировать. Не тратьте свои деньги.
Мне потребовалось некоторое время, чтобы привыкнуть к тонким различиям между похожими символами и начать замечать их. Пока вы не привыкнете к этому — может быть довольно неприятно.
Вначале я пытался найти причину каждой встреченной проблемы. Это не обязательно. Компьютеры сложны настолько, что вам всегда будет чему в них поучиться. Всё сразу вы никогда не поймете, и это нормально.
Нет более быстрого способа научиться писать код.
Раньше я думал, что каждый кусок кода нужно делать идеальным. Но внесение улучшений в ваш код — это естественно. Вы пишете не книгу, чтобы нельзя было изменить её после публикации.
Каждому в какой-то момент требуется обратиться за помощью. Когда вы соберетесь это сделать, выполните четыре шага:
Выполнив указанные шаги, очень вероятно, вы придете к решению, даже не обращаясь за помощью. Такой подход способствует целостному рассмотрению проблем.
Если вы не «математик», это не значит, что вы не можете быть программистом.
Создавать полезности с помощью кода — по-настоящему круто. Я бы никогда не добрался туда, где нахожусь, если бы не оборачивался и не восхищался удивительными вещами, которые создал по пути.
В начале весьма пугало то, как выйти на уровень, на котором я почуствовал бы себя комфортно. Но как только я принял участие во встрече, то понял, что таких же разработчиков, как и я, было множество.
Merge-конфликты раздражают. Поэтому, когда я понимал, что могу подобраться к какой-то функции до товарища по команде, чтобы вместо меня разбираться с ней оставалось ему (или ей), я приходил в чрезвычайный восторг.
При программировании первых задач вы можете быть склонны «прикидываться, пока не сделаете». Не надо так — никто не ожидает, что вы будете знать всё сразу.
В действительности вам просто нужно быть в общем положительным, быть готовым исправляться и возобновлять деятельную траекторию при столкновении с проблемами. Это занимает гораздо меньше времени, чем 10000 часов.
И когда так происходит, это действительно чертовски круто.
Однажды я допустил ошибку, которая стоила моей компании 10000 долларов США. В итоге я усвоил самый важный урок моей карьеры программиста: не бойтесь ситуаций, где вы можете допустить ошибку, если риск это оправдывает. Благодаря такому вы, как разработчик, станете лучше.
Алгоритмы представляют собой пошаговый подход, в котором есть только один правильный следующий шаг. Проще всего себе это представить на примере стратегии, с которой вы искали бы конкретное имя в телефонной книге. Я написал об этом процессе здесь (англ.), если вам интересно.
Существует синдром самозванца. Постарайтесь не забывать, что знать не всё — это нормально. Самое важное — понимать, что вы в состоянии разобраться с тем, чего еще не знаете.
Новые технологии появляются постоянно, поэтому преуспевающие программисты — это те, кто продолжает учиться и развивать свое мастерство на постоянной основе.
У слишком многих людей складывается впечатление, что нужно думать как компьютер. На самом деле всё наоборот.
В вашем распоряжении очень много различных открытых библиотек, инструментов и фреймворков. Поэтому вам нужно расширять свой инструментарий разработчика и понимать, какой инструмент больше подходит для решения встретившихся вам задач.
Обучение программированию — это большая работа, особенно для уровня, когда вы сможете войти в профессию. Это требует времени и высокой дисциплины, но это осуществимо. Слишком много людей совершают ошибку — завершают массивную работу, едва едва не достигнув желаемого.
Но именно поэтому это дело стоящее.
Оглядываясь назад, на самом деле, я очень рад, что вначале был таким наивным. Слабые знания мотивировали меня критически разбираться во всем, что я узнал позднее.
Теперь я могу помогать другим людям в достижении их целей в направлении программирования. Что может быть лучше?
Заранее, прежде чем начинать программировать, хотелось бы узнать массу вещей, но вот 27 из них, которые приходят на ум. Самые важные я поставил под номерами 14 и 26, чтобы вам было интересно прочитать статью полностью.
1. Учитесь на практике
Единственный способ стать лучше в программировании — это программировать. Не позволяйте помешать вашим начинаниям, парализуя себя анализированием.
2. Программирование не похоже на подготовку к тесту
Запоминание всплошную не имеет существенного значения.
3. Махинации совершенно приемлемы
Я использую Google для решения большинства своих проблем, как и многие из программистов.
4. Накапливать непроверенные наработки — плохая стратегия
Я делал беспорядочные изменения в своем коде и ожидал, что он сразу же заработает. Недостаток этого подхода в том, что проблемы собираются одна поверх другой, и выяснить, что пошло не так, становится затруднительно.
5. Самостоятельно учиться — очень сложно
Обсуждение кода и сотрудничество с другими начинающими разработчиками для большинства людей — лучший способ научиться.
6. Не грузитесь сожалениями
На пути к умению программировать вам встретятся сообщения об ошибках.
Чтобы расти в условиях, когда «наворотить» это неотъемлемая часть дела, вы должны встречать проколы устойчиво.
7. Вам не нужно 5 мониторов
Вопреки голливудскому клише, чтобы быть программистом, вам не нужен безумный каскад мониторов. Компьютер, которым вы владеете сейчас, вероятно, достаточно хорош, чтобы начать программировать. Не тратьте свои деньги.
8. Существует большая разница между заглавной и строчной буквой
Мне потребовалось некоторое время, чтобы привыкнуть к тонким различиям между похожими символами и начать замечать их. Пока вы не привыкнете к этому — может быть довольно неприятно.
9. Попытка понять все — безнадежное дело
Вначале я пытался найти причину каждой встреченной проблемы. Это не обязательно. Компьютеры сложны настолько, что вам всегда будет чему в них поучиться. Всё сразу вы никогда не поймете, и это нормально.
10. Участвуйте в парном программировании как можно больше
Нет более быстрого способа научиться писать код.
11. Изменение плохого кода является частью работы
Раньше я думал, что каждый кусок кода нужно делать идеальным. Но внесение улучшений в ваш код — это естественно. Вы пишете не книгу, чтобы нельзя было изменить её после публикации.
12. Обращайтесь за помощью правильно
Каждому в какой-то момент требуется обратиться за помощью. Когда вы соберетесь это сделать, выполните четыре шага:
- Обобщите детали, которые обнаружили.
- Отчетливо определитесь, что должно происходить по вашему мнению.
- Отчетливо проясните, что происходит на самом деле.
- Конкретизируйте, почему вы думаете, что работать должно по-другому.
Выполнив указанные шаги, очень вероятно, вы придете к решению, даже не обращаясь за помощью. Такой подход способствует целостному рассмотрению проблем.
13. Вам не нужно быть гением в математике
Если вы не «математик», это не значит, что вы не можете быть программистом.
14. Всегда отмечайте маленькие победы
Создавать полезности с помощью кода — по-настоящему круто. Я бы никогда не добрался туда, где нахожусь, если бы не оборачивался и не восхищался удивительными вещами, которые создал по пути.
15. Митапы невероятно ценны
В начале весьма пугало то, как выйти на уровень, на котором я почуствовал бы себя комфортно. Но как только я принял участие во встрече, то понял, что таких же разработчиков, как и я, было множество.
16. Избежание merge-конфликтов делает вас счастливее
Merge-конфликты раздражают. Поэтому, когда я понимал, что могу подобраться к какой-то функции до товарища по команде, чтобы вместо меня разбираться с ней оставалось ему (или ей), я приходил в чрезвычайный восторг.
17. Признавать, что вы чего-то не знаете — это нормально
При программировании первых задач вы можете быть склонны «прикидываться, пока не сделаете». Не надо так — никто не ожидает, что вы будете знать всё сразу.
18. Чтобы получить работу, не требуется 10000 часов
В действительности вам просто нужно быть в общем положительным, быть готовым исправляться и возобновлять деятельную траекторию при столкновении с проблемами. Это занимает гораздо меньше времени, чем 10000 часов.
19. Готовьтесь просыпаться утром, думая о коде
И когда так происходит, это действительно чертовски круто.
20. Совершать большие ошибки — естественно
Однажды я допустил ошибку, которая стоила моей компании 10000 долларов США. В итоге я усвоил самый важный урок моей карьеры программиста: не бойтесь ситуаций, где вы можете допустить ошибку, если риск это оправдывает. Благодаря такому вы, как разработчик, станете лучше.
21. Алгоритм подобен поиску имени в телефонной книге
Алгоритмы представляют собой пошаговый подход, в котором есть только один правильный следующий шаг. Проще всего себе это представить на примере стратегии, с которой вы искали бы конкретное имя в телефонной книге. Я написал об этом процессе здесь (англ.), если вам интересно.
22. Вы никогда не почувствуете, что готовы программировать по-серьёзному
Существует синдром самозванца. Постарайтесь не забывать, что знать не всё — это нормально. Самое важное — понимать, что вы в состоянии разобраться с тем, чего еще не знаете.
23. Программисты никогда не прекращают учиться
Новые технологии появляются постоянно, поэтому преуспевающие программисты — это те, кто продолжает учиться и развивать свое мастерство на постоянной основе.
24. Заставьте компьютер думать как человек
У слишком многих людей складывается впечатление, что нужно думать как компьютер. На самом деле всё наоборот.
25. Программирование — это использование подходящего инструмента для работы
В вашем распоряжении очень много различных открытых библиотек, инструментов и фреймворков. Поэтому вам нужно расширять свой инструментарий разработчика и понимать, какой инструмент больше подходит для решения встретившихся вам задач.
26. Прекратить прямо перед переменами к лучшему — распространенный поступок
Обучение программированию — это большая работа, особенно для уровня, когда вы сможете войти в профессию. Это требует времени и высокой дисциплины, но это осуществимо. Слишком много людей совершают ошибку — завершают массивную работу, едва едва не достигнув желаемого.
27. Научиться программировать нелегко
Но именно поэтому это дело стоящее.
Оглядываясь назад, на самом деле, я очень рад, что вначале был таким наивным. Слабые знания мотивировали меня критически разбираться во всем, что я узнал позднее.
Теперь я могу помогать другим людям в достижении их целей в направлении программирования. Что может быть лучше?