Я 16-летний школьник со страстью к компьютерному программированию. Я учусь в 11 классе и изучаю его в рамках школьной программы около 8 месяцев. Я вышел за рамки того, чему учат в школе, и стал свидетелем нескольких (достаточно хороших) заявлений. Я программирую на языке C ++ на платформе Windows. В конце концов, я хотел бы специализироваться в CS в хорошем колледже, а затем работать программистом.
У меня есть конкретные вопросы:
- Что для меня хорошее место, чтобы заметить мою работу?
- Существуют ли какие-либо журналы или публикации специально для молодых программистов?
- Если нет публикаций, то есть ли хорошие блоги или лучше начать свои собственные?
- Есть ли что-нибудь еще, что помогло бы мне стать программистом?
Я старался быть максимально объективным.
Если бы все это было так: dr: Как лучше всего быть замеченным молодым программистом?
Редактировать: я не хочу получать работу прямо из средней школы Цель не в том, чтобы произвести впечатление на сообщество в качестве профессионального программиста. Это сделано с целью подать заявку в колледж, где ваша работа будет замечена и подвергнута критике со стороны других людей, что улучшит вашу заявку. Я не собираюсь зарабатывать деньги на том, что я написал (пока).
Ответы:
Я хотел бы дать вам несколько предупреждений и предложений.
Предупреждения:
Не переоценивайте свои знания: прямо сейчас я могу предположить, что вы знаете достаточно, чтобы написать простое приложение и больше, чем то, чему на самом деле учат в классе. Но это не делает вас «профессиональным программистом»; это может сделать вас "фрилансером" максимум.
Не недооценивайте ценность того, чему учат в школе. Даже если что-то может показаться вам очевидным, изучите это также: вы увидите «новые аспекты» (я буду более ясен позже) по мере продвижения.
Предложения:
Профессиональные приложения имеют типичный жизненный цикл 3-5 лет и требуют тысячи (до миллионов) человеко-часов работы. Они не могут быть развернуты одним разработчиком. Профессиональные программисты должны работать с другими. Дело не только в хорошем знании инструментов (таких как языки, IDE и т. Д.), Но также в методах, методах и идиомах.
В то время как инструменты могут обучаться с помощью формальных образцов и упражнений, методы и идиомы можно только «описать». Чтобы «выучить» их, вы должны испытать их и поделиться ими с другими. Они постоянно изобретаются и совершенствуются.
Компании при приеме на работу из школы проверяют ваше понимание инструментов и свои способности с помощью базовой техники, но - что наиболее важно - проверяют свои способности в быстром изучении новых вещей и «захватывают работу» по мере необходимости.
При приеме на работу для опытных людей, они смотрят, сколько вещей они сделали, и какой опыт они получили от этих вещей.
Мораль:
Если вы хотите быть более «оцененными», научитесь работать с другими, участвуя в проблемах других (например, в стеке и потоке ) или в открытых проектах (например, в sourceforge )
Кроме того, не спешите просить денег; разделите ваше «производство кода» на «что-то, чтобы поделиться» и «что-то, чтобы продать». То, чем вы можете поделиться, может быть использовано другими, но также может привлечь участие других для расширения первоначального проекта. То, что вы можете продать, - это то, что делает ваше приложение «уникальным» по сравнению с другими подобными проектами, что делает его реальным коммерческим продуктом.
Чтобы поделиться кодом с другими, вы можете обратиться к сайту codeproject или sourceforge . Их рейтинг также дает представление о том, насколько интересно то, что вы сделали, для других людей.
источник
Задумывались ли вы о создании проектов с открытым исходным кодом для написанных вами приложений и размещении их в Интернете? SourceForge.net или GitHub.com - хорошие хосты с открытым исходным кодом. Это поможет улучшить видимость ваших приложений.
источник
Прежде всего, давайте прояснимся: большинство из 16 программистов YO действительно не впечатляют сообщество.
На мой взгляд, для этого есть причина. Быть хорошим программистом зависит не только от навыков программирования. Как вы , надеюсь увидеть во время вашего CS мажора, программирование является лишь подмножеством информатики, и большинство людей , выигравших призы (академические призы по крайней мере) будет сделано так , потому что они доказали , что - то новое (новую теорему, например), или обнаружил новый способ достижения какой-то задачи (шаблоны проектирования). Для этого вам необходимо (как минимум):
Если вы чувствуете, что уже освоили все это, то да, вы, вероятно, произведете впечатление на сообщество.
Вы всегда можете попытаться внести свой вклад в проект с открытым исходным кодом, но вы также можете быть весьма удивлены, насколько вам нужно наверстать упущенное, прежде чем вы сможете внести свой вклад.
Наконец, посмотрите на StackOverflow и посмотрите, сколько вы можете ответить на своем любимом языке ... у вас будет хороший прокси вашего уровня.
источник
Постарайтесь получить действительно высокую репутацию в переполнении стека. Почти такая же тема обсуждалась здесь:
Поможет ли высокая репутация в Stack Overflow найти хорошую работу?
источник
Несколько вещей, которые вы можете попробовать:
источник
Я последую за ответом Бернарда и добавлю немного больше. Существует так много проектов OSS, что все еще может быть трудно быть замеченным, если вы не создадите популярный проект, который не будет легким для программиста, только начинающего.
Предполагая, что вы пытаетесь быть замеченным в сообществе программистов, я бы предложил опубликовать (OSS или закрытый исходный код) дополнения для инструментов, которые используют программисты. Представьте, что вы пройдете собеседование и сможете сказать, что компания уже использует программное обеспечение, которое вы написали. У многих инструментов разработчика есть API для создания надстроек и несколько даже хостов «App Store», где вы можете получить некоторое представление о своем инструменте, не слишком заботясь о его маркетинге.
Вот несколько примеров из головы:
В зависимости от того, какой инструмент вы выберете, вы можете настроить таргетинг на определенный анклав сообщества программистов, которого вы хотите заметить.
источник
источник
У меня здесь немного другая точка зрения.
Если вы хотите, чтобы ваше программное обеспечение было замечено, лучше всего, чтобы люди использовали его. Хотя Билл Гейтс и Марк Цукерберг были замечательными молодыми программистами, было много лучших программистов. Но эти два джентльмена заставили многих людей использовать их продукты и поэтому более известны за их работу.
Чтобы заставить людей использовать ваш код, вы можете:
На мой взгляд, программное обеспечение практически не имеет значения, не принося пользы пользователям. И вас заметят за решение проблем, которые волнуют людей, а это очень редкий навык.
источник
Один ответ, который я еще не читал: Google Summer of Code.
С сайта :
Для участия вам должно быть 18 лет, но это не за горами. Я знаю некоторых людей, которые участвовали и имели большой опыт. Поскольку все ваши вклады в программы с открытым исходным кодом, они являются общедоступными, поэтому они будут замечены.
Поскольку вам не исполнилось 18 лет, Google также предлагает GSOC-подобную программу для студентов дошкольного образования (13-17 лет), которая называется Google Code IN .
источник
С моей точки зрения, есть люди, которые программируют.
Определения:
Обратите внимание, я использовал слово «Средний» выше. В зависимости от личных интересов и опыта работы эти проценты могут кардинально измениться. Это просто чрезмерно обобщенные стереотипы. Не судите книгу по обложке. Я также просто проценты BSing от моего опыта.
источник
Я внештатный программист. Программирование было моим основным доходом с тех пор, как я окончила среднюю школу 9 лет назад. Я все еще собираюсь получить свою степень, но на данный момент время все еще не подходит для меня.
Мой путь к самопознанию был следующим. Я не говорю, что эти шаги сделают вас признанными сообществом программистов, но они помогут повысить ваш авторитет, когда придет время брать интервью.
Даже после того, как я в то время был достаточно сведущим в программировании IMO, я вернулся к основам, просмотрел учебные пособия и создал себе портфолио, основанное на вдохновляющих работах из них. Я также начал заставлять себя комментировать свой код в стиле JavaDoc. Портфель может быть не наполнен блеском и гламуром прямо сейчас, но он дает вам базовую линию, из которой вы можете построить и в конечном итоге заменить то, что у вас есть. Затем у меня был набор демонстраций и примеров кода для демонстрации потенциальным клиентам. Это важно для получения вашей первой работы. Никто не хочет нанимать кого-то, у кого нет опыта, однако, есть ряд людей, которые дадут шанс многообещающему программисту, не имеющему профессионального опыта.
Позже я проанализировал эти программы и начал писать библиотеки на основе моих обычно используемых задач. Со своими новыми библиотеками я начал смотреть на проблемы CompSci в Интернете и начал сам определять, сколько времени мне понадобится, чтобы найти решение с помощью моих библиотек. Это дало бы мне основу в будущем относительно того, что я должен брать за определенную задачу.
Только тогда я открыл для себя открытый исходный код. Я просмотрел проекты на sourceforge на интересующем меня языке и нашел приложения, которые мог бы использовать. Я установил эти приложения и начал использовать их как часть моего повседневного опыта работы на компьютере. Я смог увидеть сильные и слабые стороны этих приложений в том, что касается моего повседневного взаимодействия, и я начал расширять их в соответствии со своими потребностями. Я отправляю свои патчи сообществу, которое разрабатывается для проверки, а через несколько я подаю заявку на участие в проекте. Именно здесь я научился использовать различные инструменты, используемые при работе в команде, которая взяла мой «огромный опыт», как я его считал в то время, и подняла его на следующий уровень.
Я адаптировал все свои практики, которые я приобрел, работая над проектами с открытым исходным кодом, и реализовывал совместимые решения, когда работал индивидуально. Я начал серьезно заниматься карьерой в качестве внештатного разработчика и присоединился к ряду сайтов внештатного найма. Я посмотрел на популярные рабочие места и начал применять. На каждую работу, за которую мне отказывали, я все равно выполнял ее для себя, как будто получил работу, чтобы расширить свои знания. Это поможет построить мое портфолио и познакомит меня с некоторыми реальными проблемами. Когда я наконец получил это первое интервью, я был откровенен и сказал им, что у меня нет профессионального опыта. Затем я начал рассказывать им о проектах с открытым исходным кодом, над которыми я работал, и о том, чего я там достиг. Некоторые серьезные препятствия, с которыми я столкнулся, и как я их преодолел.
источник
PS: Прошло много времени с тех пор, как я подал заявление в колледж - они все еще дают вам возможность перечислять такие вещи, верно? (Например, раздел о хобби, или вопрос эссе о ваших интересах).
источник
Я думаю, что JohnFX дал отличный ответ на этот вопрос.
Несколько мыслей:
Я думаю, что jQueryUI может быть лучшим местом для начала. Это весело и наглядно. Таким образом, вы можете зайти на форум разработчиков jQueryUI на сайте jQuery и попросить внести свой вклад.
Я думаю, что вы будете демонстрировать большую страсть и преданность программированию больше, чем демонстрируете большое мастерство. Но не позволяйте этому остановить вас! Я настоятельно рекомендую вам принять участие.
На этом этапе вам, возможно, придется согласиться на проведение QA. QA скучно, но вы можете принять это и показать самоотдачу. Но оттуда вы можете добавить немного кода и, возможно, сделать плагины.
Если вы просите быть вовлеченным во что-то, а они затрудняют это, это потому, что они придурки. Просто посмотрите на проект, где люди ободряющие и приятные.
После того, как вы найдете проект с вдохновляющими, приятными людьми и вы внесете свой вклад, вы можете попросить одного из взрослых участников или, возможно, одного из ответственных за проект, написать вам короткое рекомендательное письмо.
источник
Я с уважением не согласен с теми, кто ответил "не переоценивай себя"!
Если у вас есть любовь к программированию в вашем возрасте, продолжайте в том же духе, вы, вероятно, лучше и лучше, чем другие дети вашего возраста, и к тому времени, когда вы станете ветераном, вы можете стать следующим Брайаном Керниганом, Эдсгер Дейкстра или Дугом Ли!
Я бы предложил изучить разработку для iPhone или Android и создать несколько реальных приложений.
Получите великое в чем-то, и пока вы туда добираетесь, выступайте на конференциях и пишите статьи, которые вас заметят и оттачивают ваши навыки.
Я занимаюсь программированием с конца 70-х годов, а на Java - с 1996 года. Могу сказать, что самой важной книгой по Java, которую я когда-либо читал, была «Банда четырех шаблонов проектирования», написанная за десять лет до изобретения Java. Прочитайте это и будьте великолепны!
Самая высокооплачиваемая отрасль сегодня - финансовая, но она быстро меняется. Я верю, что это вернется, но вы никогда не знаете!
Будьте программистом и наслаждайтесь высокой занятостью и удовлетворенностью работой!
Удачи, у вас впереди отличная карьера!
источник
Создайте веб-приложение, которое будет хорошо работать на iPhone и Android (пока игнорируйте стандартные браузеры) и воспользуйтесь расширенными функциями HTML5 (https://developer.mozilla.org/en/HTML/HTML5), чтобы преодолеть задержку в пятнистой сети, и ограничение телефонных браузеров. Скорее всего, это означает поставку приложения браузера javascript + html5, которое подключается к API сервера. (выберите xmlrpc / json / yaml, а не SOAP). заставь это кричать быстро. На сервере я рекомендую использовать cherrypy в linux (debian) на дешевых VPS. Вы можете получить их на 123systems.com, buyvm.net (желательно, но часто не доступно) менее чем за 4 доллара в месяц. Научитесь использовать Python и используйте Fabric для развертывания ваших материалов на ваших серверах. Получите домен .info на namecheap.com за 2,99 долл. В год и используйте dnsmadeasy.com для DNS (дороже, но оно того стоит - использую их годами, никогда не было ни одной проблемы), где вы можете сделать балансировку нагрузки через DNS. Кроме того, не откладывайте на базы данных. Используйте sqlite и научитесь проектировать свои таблицы вручную с помощью операторов sql. Наконец, с одной машиной вы можете обрабатывать 30 000 пользователей. (2000 одновременно при одном попадании на сервер каждые 3 секунды). Не забудьте кэшировать как можно больше в хранилище HTML5.
Если вы сделаете это, и вы будете писать об этом в блоге, а также узнаете о записях в блоге и о вашем прогрессе, вы обязательно будете замечены. Конечно, есть чему поучиться, но вы можете это сделать!
источник
Практически везде в Интернете - если вы напишите что-то, о чем стоит упомянуть, например, об утилите, которая делает что-то аккуратное или уникальное, что большое количество людей будет использовать / загружать - тогда вы уже выполнили большую часть этой задачи. Классные, полезные и доступные приложения, рекламируйте себя.
Вы уже здесь - это всего лишь одно из многих сообществ, из-за огромного желания поделиться и быть известным благодаря знаниям - другие люди более чем счастливы связать полезные темы с текущей дискуссией.
Просто программа ради программирования - если она продуктивная, креативная и полезная - будет замечена.
Одна вещь, о которой я упоминал в других ответах, которую я тоже поддерживаю, это вклад в проекты с открытым исходным кодом. Единственный способ улучшить кодирование - это написать код - и что может быть лучше, чем решить текущие проблемы. Потому что, без проблем решить, вы напрасно пишете ... о, еще одна вещь, не говоря уже о старых сварливых парнях, с их раздутыми и намеренно обескураживающими комментариями "молодой болванчик" - вы молоды и энтузиазм, это все, что вам нужно.
источник
Если бы я был тобой, я бы сделал так, чтобы мои знания стали известными благодаря моей работе. Ты говоришь, что программируешь,
c
поэтому начинай создавать программы, ориентированные на опыт обычных пользователей ПК, создавай такие вещиyoutube downloader
и начинай свой собственный,dev team
эй, мне всего 19 лет, и я начал программировать 4 года. назад и возьмите этого молодого чернокожего парня из капюшона .... чтобы я мог понять страсть, которую вы можете иметь к программированию, но в то же время программирование может занять много вашего времени и усилий, дать себе время жить .. То есть все время, проведенное за компьютером, может вызывать стресс у молодого мальчика.источник
Есть множество мест, где можно поднять свою работу, чтобы ее узнали, но, хотя вы можете считать свою работу на высшем уровне, для некоторых это может быть просто простой день на работе. Когда мне было 16 лет, я думал, что моя работа была потрясающей, я делал кое-какие классные вещи, но сейчас я действительно работаю в этих областях, и то, где я был тогда, ничто по сравнению с тем, где я сейчас нахожусь, и я еще далеко оттуда, где я хочу быть.
источник
Если вы увлекаетесь играми, попробуйте поучаствовать в Ludum Dare. Хорошая игра там получит известность.
источник
Если вы хотите, чтобы вас заметили и заработали немного денег, я бы порекомендовал разработку мобильных приложений для iPhone или Android. Вы уже знаете C ++, и это отличное начало. Для нативной разработки на iPhone вам понадобится Objective C, а для Android - Java. Оба схожи с C ++ (Java проще, так как нет управления памятью), и не будет слишком сложным для изучения. Так что вы не только будете писать приложения, которые вас заметят и заработают немного денег, но вы также будете изучать новые языки и горячие платформы.
источник