Как продвинуться дальше как программист? - PullRequest
16 голосов
/ 12 марта 2010

За последние 6 месяцев, которые я читал в программировании на C, я получил K & Rv2, руководство по сокетам BEEJ, программирование на Expert C, программирование в Linux, спецификацию ISO / IEC 9899: 1999 (реальная и не черновик). Получив их от Amazon, я установил Linux и добрался до него.

Я закончил с K & R, примерно на полпути к программированию на Expert C, но все еще чувствую себя слабым программистом, я уверен, что для того, чтобы стать по-настоящему квалифицированным, требуется намного больше 6 месяцев чтения, но мой вопрос таков:

Я выполнил все упражнения в K & Rv2 (в главе 1) и некоторые в других главах, большинство из которых, как правило, очень скучные. Как я могу поднять свои навыки и стать по-настоящему великим? Я вложил деньги, время и общий образ жизни в то, чего я действительно желаю, но я не уверен, как именно этого достичь.

Может ли кто-нибудь объяснить мне, возможно, если мне нужно постоянно кодировать, что именно я должен кодировать? Я почти уверен, что написание программ Hello World не научит меня больше, чем я уже знаю о чем-либо.

Мой друг сказал «читать» (с акцентом на чтение) справочную страницу в день, но чтение - это все, что я делаю, я хочу делать, но я не уверен, что! Я заинтересован в безопасности, но я не уверен, как новичок, что кодировать, что будет достаточно.

Ах, надеюсь, вы не удалите этот вопрос:)

Спасибо

Ответы [ 21 ]

1 голос
/ 26 августа 2012

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

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

Если вы больше сосредоточены на веб-проектах или серверных серверных проектах, сохраняйте свои знания языка актуальными и достаточно маленькими,хорошо знаю языкИсходя из моего опыта, если вы хорошо знаете язык на основе Algol, например C, вы, вероятно, сможете выучить другой похожий язык, такой как C ++, Java или Perl.C - замечательный язык, но если вы не планируете писать ядро ​​Linux, специализированный встроенный код или код расширения Python, я бы предложил изучить Scala или Clojure и, возможно, Ruby в дополнение к Javascript и PHP.

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

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

1 голос
/ 12 марта 2010

Код Hello World, затем код Hello World, распространяемый по сети, или в 3D, или с использованием базы данных. Не думайте, что вещи слишком тривиальны, пока вы их не сделали. Реализуйте алгоритмы, чтобы убедиться, что вы знаете, как. Делайте код, который вы считаете забавным.

1 голос
/ 12 марта 2010

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

Кроме того, Code Golf - это хороший способ найти забавные программы для попытки.

0 голосов
/ 06 апреля 2010

Подумайте о том, чтобы прочитать больше о «концепциях» программирования, чем о чисто синтаксисе:

Подпишитесь на рассылку / новостную рассылку / журнал / подкасты для программистов в своей области: http://www.drdobbs.com/cpp/;jsessionid=XVZEO0SKOCRRBQE1GHPCKH4ATMY32JVN

Посетите StackOverflow.com и периодически пытайтесь решать проблемы, чтобы решить свои проблемы и помочь другим.

0 голосов
/ 14 марта 2010

Может оказаться полезным чтение Code Complete 2 . Это хорошая книга по программированию.

.

0 голосов
/ 13 марта 2010

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

0 голосов
/ 13 марта 2010

Вы можете изучать язык только тогда, когда вы его используете. Простые примеры или упражнения никогда не дадут вам глубокого понимания языка. Лично я находил упражнения в конце главы скучными и не мирскими, поэтому я их не выполнял. Как и другие штаты, найдите интересующий вас проект. Это может быть что угодно, начиная от простой настольной игры и заканчивая системой видеомонтажа. Если вы узнали, что вас интересует, посмотрите, как это можно сделать. Вам нужно будет использовать некоторые вспомогательные библиотеки для пользовательского интерфейса, а также для бэкэнда. И тогда начинай работать! (Конечно, проект должен быть выполнимым для вас, поэтому не ставьте перед собой цель «написать лучший текстовый процессор, чем Winword».)

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

0 голосов
/ 12 марта 2010

Некоторые идеи проекта:

  • Небольшие проекты базы данных: список контактов, коллекция DVD и т. Д. Подчеркивает файловый ввод-вывод, структуры данных с возможностью поиска и т. Д.
  • Простой калькулятор: подчеркивает интерактивный ввод / вывод, синтаксический анализ, древовидные структуры и т. Д.
  • Простой NNTP (Usenet) или чат-клиент: сеть и протоколы
0 голосов
/ 12 марта 2010

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

То, что работает для одного человека, не всегда работает для другого.Код гольф может работать на вас, или вы можете найти это утомительным, например.Лично мне нравится делать что-то, что имеет подлинную ценность, но это я.Немного поэкспериментируйте с различными типами проектов кодирования, например, Code Golf, возможно, с открытым исходным кодом, производством игры и т. Д. Иногда помогает просто попытка выяснить, как ответить на вопросы других людей.В конце концов вы найдете то, что работает для вас.Просто помните, учебы недостаточно, вы должны применять эти исследования.

0 голосов
/ 12 марта 2010

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

Веб-программирование может во многих отношениях отличаться от системного программирования, но оба имеют много общих проблем безопасности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...