Як я даведаюся, калі буду гатовы стаць прафесійным праграмістам?


адказ 1:

Я займаюся праграмаваннем ужо 30 гадоў, і я распрацоўнік C ++ больш за 20 гадоў. Я жыву ад гэтай прафесіі.

На мінулым тыдні я быў на канферэнцыі C ++. Я выпіў напоўніцу з арганізатарам і некалькімі выступоўцамі ў нумары гатэля да 3:30 раніцы. Шон Бацькоў распавёў некалькі добрых гісторый пра развіццё Photoshop. У мінулым годзе мне давялося пазнаёміцца ​​з Bjarne Stroustrup, і тры гады таму мне было цікава, чаму гэты нямецкамоўны хлопец перада мной падобны на двайніка Скота Мэерса, пакуль я не зразумеў, што Скот Мэерс размаўляе па-нямецку амаль выдатна.

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

Калі я вучыўся ў першым семестры ва ўніверсітэце, у мяне была размова з дырэктарам факультэта, у якой я сказаў яму, што разлічваю пайсці шлях ад полупрафесіянала, каб стаць тут прафесіяналам, і ён сказаў мне, што я магу быць расчараванымі, бо ўніверсітэт не стварае спецыялістаў. Яны проста паказваюць ім, у які бок яны павінны ісці пасля вучобы.

Аднойчы я прачытаў цытату Б'ярна Струструпа, вынаходніка C ++, дзе яго спыталі пра веды C ++ па шкале ад 1 да 10. Ён адказаў: "7".

Я б сказаў, што вы на добрым шляху да прафесійнасці, як толькі зразумееце, што не можаце стаць тым, што лічыце прафесіяналам. Пакуль вы думаеце, што вы добра падрыхтаваны, дасведчаны чалавек, які можа вырашыць кожную праблему, вы дакладна не прафесіянал.

Чым больш вы разумееце, колькі яшчэ трэба вучыцца, тым больш прафесіяналам вы робіце. Вы атрымліваеце арыентацыю. І на самай справе за апошнія 30 гадоў я даведалася значна хутчэй пра рэчы, аб якіх я зусім не разумею, чым разумець больш рэчаў.

На самай справе я ўсё больш і больш даведаўся, што ёсць шмат людзей, якія значна лепш за мяне. Але я набыў досвед і ёсць дамены, дзе я не зусім зразумелы, дзе некаторыя пытаюцца пра маё меркаванне і называюць мяне спецыялістам. Але ў рэшце рэшт, я проста бачу больш рэчаў у гэтай галіне, якіх я не ведаю, чым яны бачаць тое, чаго не ведаюць. У мяне больш арыентацыя на тое, чаму вучыцца, і больш досведу ў атрыманні прыярытэтаў. Але ёсць і тэмы, калі я пытаюся ў студэнта CS, таму што ён проста чуў пра гэтую тэму на курсах.

Таму я, магчыма, я проста спецыяліст у галіне, бо бачу там яшчэ рэчы, якія я яшчэ не зразумеў.

Гэта вы бачыце прафесіянала?


адказ 2:

А2А

ІМО, калі адчуваеш, што можаш кодаваць цэлы дзень, кожны дзень і не стамляцца ад гэтага.

Шмат людзей пачынае праграмаваць, таму што яны займаюцца хобі-праектамі і думаюць, што хочуць рабіць гэта поўны працоўны дзень. Затым, калі яны працуюць, яны згараюць, бо праграмаванне ўжо не задавальненне, гэта проста праца. Яны працуюць над праектамі, да якіх яны не ўяўляюць асабісты інтарэс, яны могуць выкарыстоўваць тэхналогіі, якія ім не абыякавыя, альбо выкарыстоўваюць "непаўнавартасныя" інструменты, і могуць прад'яўляць такія патрабаванні, як выраб X радка кода ў дзень.

Мне падабаецца праграмаваць, але ў мяне ёсць магчымасць пераважна выбіраць, чым я займаюся, бо мая галоўная праца - гэта не распрацоўка, а стварэнне мадэляў і мадэлявання кібер-сцэнарыяў. Я некалькі гадоў праграмаваў прафесійна, і большай часткай гэтага атрымліваў задавальненне, але гэтак усё роўна, што мая праца прадыктавана для мяне.

Што тычыцца сырых навыкаў, вы павінны мець упэўненасць у сваіх здольнасцях пісаць код з нуля як мінімум на адной мове і ўмець разумець іншыя мовы (Perl не трэба ўжываць). Умець разумець камп'ютэры на тэхнічным узроўні, напрыклад, працуюць аперацыйныя сістэмы (вялікая карцінка), як працуюць працэсары і звязаныя з імі схемы, як працуе файлавая сістэма і г.д., але не трэба штодня.

Зразумела, я праграміст-самавук і не маю дыплом CS, таму не ведаю, колькі школьных ведаў пераносіцца ў рэальны свет. Але я напісаў серыю кніг пра Python, накіраваную на новых праграмістаў, і гэтага было дастаткова, каб атрымаць мне тры заданні, дзве як распрацоўшчыкі Python і маю цяперашнюю ў мадэлях і сім-колах (якія пабудаваны на Python).

Таму, хаця я мог бы разгледзець свае навыкі праграмавання на прамежкавым узроўні, дастаткова прымусіць іншых разглядаць мяне як прафесіянала. Я мяркую, што вялікая адказнасць заключаецца ў тым, што незалежна ад таго, як вы ставіцеся да сваіх навыкаў праграмавання, у канчатковым выніку залежыць ад таго, як іншыя ўспрымаюць вас. Калі яны гатовыя прапанаваць вам працу, тады вы можаце назваць сябе прафесіяналам.


адказ 3:

Па маім асабістым досведзе гэта было спалучэнне двух рэчаў:

  • Калі вы разумееце межы вашай праграмнай асяроддзі
  • Калі вы здольныя працаваць унутры іх і вакол іх

Дазвольце мне прывесці прыклад. Праграмаванне - гэта ўсё рашэнне праблем, і даволі часта вы збіраецеся марнаваць час на тое, каб вырашыць праблему ў вашай праграме. Такім чынам, вы шукаеце рашэнні ў Інтэрнэце і знаходзіце чые-небудзь прапановы па перапаўненні стэка і чакаеце што? Я зрабіў усё правільна, адкуль гэтая памылка? Такім чынам, зараз вы затрымаліся ў наладзе праграмы "ваша", калі ўсе астатнія ў каментарах казалі "Дзякуй, гэта спрацавала!" Гэта можа адбыцца і з праграмістам любога ўзроўню кваліфікацыі толькі на парадак вышэй, што тычыцца складанасці, і не столькі праверка вашых ведаў, колькі ваша рашучасць. Зваротным з'яўляецца тое, што калі вы не можаце правільна здагадацца пра рашэнне праблемы ў незнаёмым API, калі вы не знайшлі рэсурсаў пра тое, каб хтосьці гэта рабіў паспяхова, гэта добра.

так TL; DR

Вы ведаеце, што гатовыя, калі перастанеце адчуваць патрэбу ў праверцы кожнага.


адказ 4:

Калі вы можаце стварыць досыць трывалыя сайты / праекты, каб зрабіць уражанне на інтэрв'ю, вы гатовыя. Паспрабуйце, што-небудзь працуе, і пакажыце гэта. Кіньце код на GitHub і пастаўце яго на рэзюмэ.

Калі начальства верыць, што вы можаце будаваць рэчы, вы гатовыя. Калі няма, вярніцеся і адшліфуйце праграмы (альбо зрабіце больш), а потым паспрабуйце яшчэ раз.