Я собираюсь учиться на третьем курсе по информатике, и я прочитал Head First Java, Head First C, и в настоящее время я читаю C ++ - язык, который мне нравится больше всего, поскольку он имеет хороший стиль преподавания для людей с опытом. Я планирую либо научиться создавать программы с использованием QT, изучать цель C (для iphone) или читать Effective C ++.
Как я могу получить опыт работы программистом? Есть ли у меня навыки, чтобы присоединиться к проекту с открытым исходным кодом или мне нужно изучать PHP, MySQL или любой другой язык. Я люблю программирование и информатику в целом, хотя некоторые занятия могут быть очень сложными (теоретическая информатика). Я также планирую стать гуру в C ++, но это будет не скоро.
c++
experience
qt
Энтони
источник
источник
Ответы:
ABC - ВСЕГДА БУДЬТЕ КОДИРОВАНИЕМ. Это действительно так просто. Один из моих любимых способов познакомиться с языком - написать игрушечного переводчика для подмножества языка на самом языке или, если это не ваша вещь, то, возможно, трассировщик лучей или что-то еще достаточно большое, чтобы быть нетривиальным но не настолько большой, что это не может быть закончено через месяц или около того. Суть в том, чтобы поработать над тем, что заставит вас взглянуть на стандартную библиотеку и средства абстракции данных, которые предлагает язык. Иногда проект оказывается успешным, иногда это не так, но в конце я знаю достаточно о языке, чтобы понять его сильные и слабые стороны и хочу ли я продолжить изучение. Если выясняется, что мне нравится язык, то каждый раз, когда я читаю интересную статью или сообщение в блоге, я пытаюсь запустить проект, в котором я воплощаю некоторые идеи, представленные в статье или сообщении в блоге. Таким образом, я всегда получаю практику и изучаю новые идеи, так что это становится добродетельным циклом.
Некоторые проекты, которые очень хорошо работали для меня в прошлом: интерпретатор для некоторого подмножества какого-либо языка, ray tracer, генератор PEG-анализатора, синтаксический анализатор HTTP-заголовков, простой клиент / сервер echo, бот Twitter для автоматической отправки твитов из очереди, продукт amazon скребок для поиска сделок.
источник
Как хорошо объяснено в разделе «Обучение программированию за десять лет» , вы должны выполнить следующие шаги:
Занимайтесь программированием и занимайтесь чем-нибудь, потому что это весело. Удостоверьтесь, что это будет достаточно забавно, так что вы будете готовы потратить свои десять лет / 10000 часов.
Программа . Лучший вид обучения - это обучение на практике. Говоря более технически, «максимальный уровень производительности для людей в данном домене не достигается автоматически в зависимости от расширенного опыта, но уровень производительности может быть повышен даже опытными людьми в результате преднамеренных усилий по улучшению «. (стр. 366) и «для наиболее эффективного обучения требуется четко определенная задача с соответствующим уровнем сложности для конкретного человека, информативная обратная связь и возможности для повторения и исправления ошибок». (стр. 20-21) Книга «Познание на практике: разум, математика и культура в повседневной жизни» является интересным справочным материалом для этой точки зрения.
Общайтесь с другими программистами; читать другие программы . Это важнее, чем любая книга или учебный курс.
Если хотите, отведите четыре года в колледж (или больше в аспирантуру). Это даст вам доступ к некоторым работам, требующим полномочий, и даст вам более глубокое понимание области, но если вы не ходите в школу, вы можете (с некоторой преданностью) получить аналогичный опыт самостоятельно или на работе , В любом случае, учебы в одиночку недостаточно. «Образование в области компьютерных наук не может сделать кого-либо опытным программистом, так же как изучение кистей и пигмента не может сделать кого-то искусным художником», - говорит Эрик Рэймонд, автор «Нового словаря хакеров». Один из лучших программистов, которых я когда-либо нанимал, имел только высшее образование; он создал много отличного программного обеспечения, имеет свою собственную группу новостей и сделал достаточно акций, чтобы купить собственный ночной клуб.
Работайте над проектами с другими программистами . Быть лучшим программистом в некоторых проектах; быть худшим на некоторых других. Когда вы лучший, вы можете проверить свои способности руководить проектом и вдохновить других своим видением. Когда вы худший, вы узнаете, что делают мастера, и вы узнаете, что им не нравится делать (потому что они заставляют вас делать это за них).
Работа над проектами после других программистов . Понять программу, написанную кем-то другим. Посмотрите, что нужно, чтобы понять и исправить это, когда нет оригинальных программистов. Подумайте о том, как разработать свои программы, чтобы облегчить их тем, кто будет поддерживать их после вас.
Выучите как минимум полдюжины языков программирования. Включите один язык, который поддерживает абстракции классов (например, Java или C ++), один, который поддерживает функциональную абстракцию (например, Lisp или ML), один, который поддерживает синтаксическую абстракцию (например, Lisp), один, который поддерживает декларативные спецификации (например, шаблоны Prolog или C ++), один который поддерживает сопрограммы (например, Icon или Scheme), и тот, который поддерживает параллелизм (например, Sisal).
Помните, что в «информатике» есть «компьютер». Узнайте, сколько времени требуется компьютеру для выполнения инструкции, получения слова из памяти (с отсутствием кэша и без него), чтения последовательных слов с диска и поиска нового места на диске. (Ответы здесь.)
Примите участие в работе по стандартизации языка. Это может быть комитет ANSI C ++, или он может решить, будет ли ваш локальный стиль кодирования иметь 2 или 4 уровня отступа. В любом случае, вы узнаете о том, что нравится другим людям на языке, как глубоко они это чувствуют, и, возможно, даже немного о том, почему они так чувствуют.
Имейте здравый смысл как можно быстрее завершить работу по стандартизации языка.
источник
Я бы посоветовал вам тренироваться, эффективно писать функциональные программы. Возьмите больший проект, как только вы думаете, что у вас есть основы. Изучите инфраструктуру qt для разработки программного обеспечения и продолжайте практиковаться. Лучший способ научиться программировать - это на самом деле писать код.
Я бы сказал, что чтение также играет важную роль, вы могли бы искать команду разработчиков, которые размещают проект с открытым исходным кодом (найдите один на github или других подобных сайтах), потому что они могут предложить вам ценный опыт групповой разработки.
источник
Иногда такие места, как sourceforge, поначалу немного пугают. Действительно хороший способ найти что-то, что можно сделать, - это просмотреть трекеры проблем проектов и найти ошибку / проблему, которая вам нравится, как исправлять ошибки.
В некоторых небольших проектах github это становится намного доступнее. У вас фактически есть направление и цель, чтобы попытаться обмануть код, вместо того, чтобы блуждать по нему вслепую.
источник
Примеры в книгах или заданиях в университете являются хорошей отправной точкой, чтобы понять, как работает программирование, и они показывают возможности для ваших будущих проектов.
Работа над реальными проектами
Но без реального опыта проекта вы склонны забывать то, чему научились.
Проблемы - это возможность показать, на что ты способен
Кроме того, в реальном проекте вы видите, насколько сложными могут быть требования, и вам трудно разобраться в проблемах. Эти проблемы - это возможность показать, на что ты способен. Вы можете видеть свои слабые стороны, которые вы должны улучшить.
источник
Да, сэр, пожалуйста, рассмотрите языки всемирной паутины. HTML5, CSS3 и JavaScript.
Вот почему:
Они быстро учатся и становятся все более богатыми для реализации.
Они больше не просто пишут в Интернете, но также создают ОС, сервер и базу данных.
Самое главное *
Теперь они используются для переопределения Computer Science 101 - создателем jQuery Джоном Резигом.
Не стреляйте в курьера, просто проверьте эту ссылку на ханскую академию .
Шаблоны проектирования c / c ++ / c # передаются в JS.
Надеюсь, это поможет.
источник