Како бити програмер

Аутор: John Stephens
Датум Стварања: 1 Јануар 2021
Ажурирати Датум: 2 Јули 2024
Anonim
В КАКИХ ПРОГРАММАХ ПИШУТ МУЗЫКУ - МОЙ ТОП 5 СЕКВЕНСОРОВ
Видео: В КАКИХ ПРОГРАММАХ ПИШУТ МУЗЫКУ - МОЙ ТОП 5 СЕКВЕНСОРОВ

Садржај

Постати програмер је акумулирајући процес који временом гради ваше вештине и може се претворити у забаван и користан посао (интелектуално, ментално и финансијски). ). Овај водич вам не обећава магичан начин да лако постанете програмер, а редослед корака није толико важан, али схватићете како постати програмер. у програмера у једном од савремених програмских поља.

Кораци

  1. Похађајте уводни курс из једног (или свих) следећих предмета:
    • Логика
    • Дискретна математика
    • Програмски језик (почетник је најбољи да научи Ц ++ / Јава / Питхон)


    Гене Линетски, МС

    Оснивач стартапа и технички директор Гене Линетски је оснивач стартапа и софтверски инжењер у заливу Сан Франциска. Радио је у високотехнолошкој индустрији више од 30 година, а тренутно је технички директор у компанији Поинт, технолошкој компанији која производи паметне продајне уређаје за предузећа.

    Гене Линетски, МС
    Почетни оснивач и технички директор

    Не треба вам степен кодирања. Иако је учење програмских језика корисно, Гене Линески, софтверски инжењер и оснивач стартапа, каже: „Да ли је диплома корисна или не, контроверзно је. тамо можете да замислите програмирање као шегртски процес - научићете на грешкама. "


  2. Сазнајте о концептима базе података као што су табеле, погледи / упити и процедуре. Да бисте то урадили, можете користити било који једноставни пакет базе података, на пример:
    • МС Аццесс
    • ДБ В
    • Фок Про
    • Парадокс
    • МиСКЛ је добра база података за учење, јер је бесплатна, често се користи, а базама података се често приступа с СКЛ упитима.

  3. Одлучите који тип програмера желите да будете. Програмери обично спадају у једну од следећих категорија:
    • Веб Девелопер
    • Програмер за радне површине апликација
      • Програмер оријентисан на оперативни систем (повезан са једним оперативним системом или скупом оперативних система)
      • Програмер независан од платформе
    • Дистрибуирани програмер апликација
    • Библиотеке / платформа / оквир / основни програмер
    • Системски програмер
      • Програмер особља кернела
      • Програмер возача
      • Програмер компајлер
    • Научник из програмирања
  4. Истражите технологије и програмске језике повезане са програмским подручјем које сте изабрали. Следећи одељци поделиће задатке различитих врста програмирања. реклама

Метод 1 од 6: Веб програмирање

  1. Схватите шта је потребно за веб програмирање. Веб апликације су софтверске компоненте дизајниране да раде на врху Интернет архитектуре. То значи да се апликацијама приступа путем софтвера прегледача као што је Фирефок или Интернет Екплорер. Ове апликације се налазе на врху Интернет архитектуре, што значи да не захтева стварну везу са Интернетом. То значи да су веб апликације изграђене на врху стандардних веб технологија као што су:
    • ХТТП
    • ФТП
    • ПОП3
    • СМТП
    • ТЦП
    • ИП протоколи
    • ХТМЛ
    • КСМЛ
    • Хладна фузија
    • АСП
    • ЈСП
    • ПХП
    • АСП.НЕТ
  2. Погледајте разне странице да бисте видели како обично изгледају. (Десним кликом миша, затим одабиром Виев Соурце (приказ изворног кода) или притиском на Ф12). Треба да тражите разноликост у типу / садржају веб странице, а не у броју веб страница које видите. Генерално, мораћете да посетите најмање једну страницу за сваку од следећих врста веб локација:
    • Уводне странице предузећа (комерцијалне компаније, непрофитне компаније / организације, државни органи)
    • Алати за веб индексирање (претраживачи, мета претраживачи, наменски претраживачи, директоријуми)
    • Веб локације за рударење подацима
    • Личне странице
    • Веб локације са документацијом / енциклопедијом (Вики, листови података, техничке спецификације и директоријуми корисничких водича, блогови и часописи, вести и веб локације, жуте странице ...)
    • Друштвене странице (друштвени портали, обележивачи и веб локације за бележење)
    • Сајтови за сарадњу (укључујући све горе наведене категорије, попут викија и блогова)
  3. Научите бар једну технику / методу мождане олује и део софтвера који се користи за то. Примери: табеле мозга и софтвер МС Висио.

  4. Упознајте се са структуром сајта. Ово је стварање концептуалних мапа сајта, мапа мапа и структура за навигацију.
  5. Похађајте интензиван курс за графички дизајн. Покушајте да научите бар један софтверски пакет за графичко уређивање / манипулацију (није потребан, али се топло препоручује).

  6. Научите основе интернет инфраструктуре. Укључује схватање основне идеје:
    • Уобичајени протоколи веб услуга (ХТТП, ФТП, СМТП и ПОП3 или ИМАП4)
    • Софтвер за веб сервере (по могућности софтвер за платформу на којој ћете првенствено радити)
    • Софтвер за прегледање Веба.
    • Сервер и клијентски софтвер за е-пошту

  7. Научите ХТМЛ и ЦСС језике. За уређивање ХТМЛ-а можда ће вам требати и пакет „Шта видите то и добијете (ВИСИВИГ) (Шта видите то и добијете)“.
  8. Научите технологије повезане са КСМЛ-ом и КСМЛ-ом попут КССЛ и КСПатх (опционално, али се препоручује).
  9. Створите једноставне статичне веб странице док се не упознате и не упознате са ХТМЛ-ом.
  10. Научите клијентски скриптни језик. Већина корисника учи ЈаваСцрипт. Други уче ВБСцрипт, али није компатибилан са већином прегледача.
  11. Упознајте се са клијентским скриптним језиком који сте научили. Покушајте да дате све од себе само са тим језиком. Наставите само ако сте барем упознати са скриптним језиком клијента.
  12. Научите барем један програмски језик сервера. Ако се одлучите ограничити на серверски софтвер, научите програмске језике које тај софтвер подржава. Ако није, научите најмање један програмски језик за сваки серверски софтвер.
  13. Направите пилот пројекат за себе након што завршите са проучавањем серверског програмског језика.
  14. Поставите сопствену веб страницу и почните да експериментишете са сопственом мрежом. реклама

Метод 2 од 6: Програмирање абдомена за радне површине

  1. Разумети шта треба радити са програмирањем апликација за рачунаре. Већина десктоп кодера намењена је пословним решењима, тако да упознавање њихових предузећа, организационих структура и финансијских структура штеди много времена.
  2. Проучавање различитих архитектура рачунарског хардвера. Интересантни ће бити основни курс за дизајн дигиталних кола и други из рачунарске архитектуре. Међутим, неки људи мисле да је прилично тешко то научити у почетку, па је читање два или три упутства (попут овог и овог) довољно. Затим се можете вратити на овај корак након што научите свој први програмски језик.
  3. Научите основни програмски језик (за децу). Нека вас не буде срамота да научите такав језик само зато што сте престари да бисте могли да вас зову „дете“. Пример таквих програмских језика је Сцратцх. Ови програмски језици могу у великој мери смањити потешкоће у учењу вашег првог програмског језика. Међутим, овај корак није обавезан, то можете учинити и пре претходног корака.
  4. Сазнајте више о процедуралним, објектно оријентисаним и функционалним моделима програмирања.
  5. Похађајте основни курс из једног од процедуралних програмских језика. Који год језик касније изабрали, и даље ће вам требати одређени степен процедуралног програмирања. Поред тога, програмери верују да је процедурално програмирање најлакше полазиште за схватање идеје о програмирању уопште.
  6. Научите бар један напредни метод моделирања попут УМЛ-а или ОРМ-а.
  7. Почните да пишете неку малу конзолу или нешто слично. Мале вежбе можете користити у књигама из програмског језика. Да бисте то урадили, одаберите алатку за писање програма према програмском језику који намеравате да напишете.
  8. Похађајте напреднији курс програмског језика по вашем избору. Обавезно разумите следеће концепте и можете их применити са релативно лакоћом пре него што кренете даље:
    • Улазне и излазне информације за кориснике програма.
    • Логични ток и ток извођења програма на процедуралним језицима.
    • Декларишите, доделите и упоредите променљиве.
    • Изводи гранања у програмирању као што су иф..тхен..елсе и селецт / свитцх..цасе.
    • Изводи петље попут вхиле..до, до.. Вхиле / док, за..напријед.
    • Синтакса вашег програмског језика за креирање и позивање процедура и функција.
    • Типови података и манипулација њима.
    • Кориснички дефинисани типови података (записи / структуре / јединице) и њихова употреба.
    • Ако ваш језик подржава преоптерећење функција, разумејте га.
    • Методе приступа меморији изабраног језика (показивачи, како читати садржај било које ћелије ...)
    • Ако ваш језик подржава преоптерећење оператера, разумејте га.
    • Ако ваш језик подржава показиваче функција, разумејте их.
  9. Примените напредне технике које сте научили.
    • Објектно оријентисани модел.

  10. Похађајте основни курс из најмање једног другог програмског језика у другом програмском моделу. Требали бисте научити један програмски језик за сваки модел, што раде и најнапреднији програмери. Међутим, обично би требало да започнете са језиком, неко време радите на њему, примените своје знање и вежбате га. Након практичног искуства у програмирању, научите нови језик. Испробајте један од следећих језичких низова:
    • Модел логичког програмирања.
    • Модел функционалног програмирања.

  11. Покушајмо да упоредимо два програмска језика која сте до сада научили. Процените снаге и слабости сваког језика. То обично раде:
    • Узмите ранији једноставан образац посла са првим програмским језиком и препишите га на други програмски језик.
    • Направите нови пројекат и испробајте га на оба језика. Понекад, у зависности од пројекта који сте одабрали и језика који сте одабрали, то нећете моћи да урадите ни на једном језику!
    • Упоредите попут табеле за брзи преглед или табеле сажетка између две сличне изјаве на два језика и јединствених карактеристика сваког.
    • Покушајте да пронађете начин да опонашате јединствене карактеристике једног од језика у другом.

  12. Научите концепте програмирања користећи један од језика који сте научили. Већина програмских језика имају верзије / библиотеке које подржавају визуелизацију и друге врсте програмирања које помажу у комуникацији или слично. То можете учинити на следећи начин:
    • Научите мало о програмирању догађаја. Већина визуелног програмирања се донекле ослања на догађаје и руковање догађајима (користећи програмски језик по вашем избору).
    • Испробајте што више софтвера за рачунаре и сазнајте шта они раде. Већина компанија за развој софтвера корисницима пружају пробне (бета) верзије производа за тестирање софтвера. Стога будите у току са напретком корисничког интерфејса.
    • Прочитајте неке чланке или упутства о графичком корисничком интерфејсу.
  13. Почните да примените своје знање на малим софтверским пројектима које дизајнирате. Покушајте да примените своје вештине програмирања на проблеме са којима се свакодневно суочавате. На пример, напишите програм за групно преименовање датотека, визуелно упоредите текстуалне датотеке, копирајте имена датотека у директоријуму у меморију / текстуалну датотеку итд. Запамтите, прво је тако једноставно.
  14. Направите виртуелни „дипломски пројекат“. Довршите пројекат до краја, примењујући технике визуализације које сте до сада научили.
  15. Проширите своје разумевање визуелних оквира / библиотека / пакета које сте претходно научили похађањем напредних курсева, обраћајући више пажње на детаље и научивши више савета и трикова за оквир. свој рад из мрежних ресурса.
  16. Потражите друге пакете / библиотеке визуелних елемената за свој програмски језик и проучите их.
  17. Похађајте курс графике (не графички дизајн). Биће врло корисно за програмере који желе да напишу атрактивне елементе корисничког интерфејса.
  18. Постаните програмер игара (опционално). Програмирање игара још увек се у великој мери сматра програмирањем на радној површини. Ако планирате да постанете програмер игара, мораћете да научите више о програмирању игара након што извршите ове кораке. Курс графике потребан је програмерима игара, а други језик по избору у претходним корацима треба да буде логички / функционални програмски језик (треба одабрати Пролог или Лисп). реклама

Метод 3 од 6: Дистрибуирано програмирање апликација

  1. Сазнајте више о програмирању дистрибуираних апликација. Многи сматрају да је дистрибуирано програмирање апликација једно од најтежих за учење и захтева богато знање рачунара и комуникационих технологија.
  2. Кратко погледајте говорне системе и њихов хардвер. Овај корак није обавезан. Међутим, веома је корисно разумевање топологија мреже.
  3. Упознајте се са хардверском архитектуром и мрежним уређајима као што су централни концентратори (чворишта), свичеви и рутери (рутери).
  4. Положите курс о протоколима и основама. Требали бисте добро разумети модел отворене везе (ОСИ), Етхернет, ИП, ТЦП, УДП и ХТТП пре него што започнете са програмирањем дистрибуираних апликација.
  5. Научите КСМЛ језик и упознајте се с њим.
  6. Почните са учењем скриптног језика за интерпретатор наредби. За програмирање засновано на оперативном систему Виндовс то може бити било која скрипта која ради са Виндовс скриптним хостом. За програмирање засновано на Линуку биће довољне скрипте Басх и Перл. ЈаваСцрипт се препоручује за ово на обе платформе из следећих разлога:
    • Подржава га већина алата за скриптовање у било којем оперативном систему (Виндовс Сцриптинг Хост подразумевано подржава ЈаваСцрипт, већина Линук дистрибуција има пакет подршке за комуникацију са скриптама ЈаваСцрипт) .
    • Многи програмери сматрају да је лакше научити.
    • Има синтаксу изведену из АЛГОЛ-а која вам омогућава да се упознате са многим другим програмским језицима када треба да изаберете други програмски језик Ц, Ц ++, Ц #, Јава и Ј # сви имају синтаксу изведену из АЛГОЛ-а.
    • Учећи ЈаваСцрипт, упознаћете се са скриптирањем клијента за веб странице, што је очигледно користан нуспојава!
  7. Прво, примените процедурално програмирање само на скриптном језику по вашем избору. Тада можете користити напредније обрасце и технике програмирања у складу са својим скриптним језиком и оним што подржава. Сви скриптни језици у одређеној су мери повезани са процедуралним програмирањем.
  8. Користите скриптни језик који сте научили за писање скрипти које комуницирају између машина. Откријте шта је потребно за то. Довољне су само једноставне контакт информације.
  9. Пребаците се на језик за програмирање / скриптовање на радној површини. Бест је језик са више парадигми попут Питхона. Прелиминарно учење о овом другом језику. Јава је језик за већину програмера из многих разлога. Међутим, Ц # помаже да се створи бржи замах у овом низу. Јава и Ц # су фаворизовани из следећих разлога:
    • Они су објектно оријентисани програмски језици који помажу програмерима у великим групама да избегну примену делова јер сви они имају способност да подрже компоненте (тј. Јединице кода, граница превод изведен за одређени задатак може се користити у другим програмима)
    • Подржавају програмирање вођено догађајима, као и ОО (објектно оријентисано) и процедурално програмирање у одређеној мери.
    • Оквир на којем је језик изграђен одликује се дистрибуираном природом (у случају Јаве).
    • Постоје готови програмски пакети доступни за руковање мрежама, било отвореног кода или уграђени у оквир; То програмерима олакшава рад на туђим производима.
  10. Више се фокусирајте на основне језичке карактеристике, посебно оне које подржавају умрежавање. Обратите мање пажње на елементе корисничког интерфејса као што су изношење информација, дизајн и технике за радни прозор и елементе корисничког интерфејса.
  11. Похађајте курс обуке за архитектуру и дизајн дистрибуираних апликација. Можете учити кроз књиге, онлајн туторијале или академске курсеве. У сваком случају, међутим, морате да схватите архитектуру дистрибуираних апликација и њене концепте.
  12. Научите како да правите компоненте услуга, као и да користите програмски језик по вашем избору.
  13. Научите једну или више следећих технологија. Бар би требало да прођете кроз све њих. Већина програмера дистрибуираних апликација не учи само један или два програмска језика, већ и најмање један програмски језик по оперативном систему. То је зато што ако желите да се ваша апликација „дистрибуира“, морате да наведете бар једну верзију за сваки популарни оперативни систем.
    • Архитектура посредника захтева заједничког објекта (ЦОРБА)
    • Једноставни протокол за приступ објектима (СОАП)
    • Асинхрони ЈаваСцрипт и КСМЛ (АЈАКС) (асинхрони ЈаваСцрипт и КСМЛ)
    • Дистрибуирани компонентни објектни модел (ДЦОМ) (Дистрибутед Цомпонент Објецт Модел)
    • .НЕТ Ремотинг (Решење за обраду рачунара на даљину)
    • КСМЛ веб услуге
    реклама

Метод 4 од 6: Библиотека / платформа / оквир / основно програмирање

  1. Схватите шта је основно програмирање. Основни програмери су само напредни програмери који претварају програме за програмирање у јединице програмског кода за употребу од стране других програмера.
  2. Ако нисте, научите програмски језик који помаже у изради компонената / пакета за вишекратну употребу.
  3. Похађајте напредни курс УМЛ и ОРМ. Већина програмера библиотека користи један или оба ова.
  4. Положите курс софтверског инжењерства.
  5. Научите барем модуларне концепте и технике засноване на компонентама, објектно оријентисане и засноване на догађајима. Што више програмских модела и језика разумете, то ћете постати успешнији као програмер библиотеке / пакета.
  6. Сазнајте више о различитим оперативним системима и програмским оквирима који их подржавају.
  7. Усредсредите своје напоре на учењу на оквирима независним од платформе, програмским језицима и технологијама.
  8. Ако језици које до сада проучавате имају стандардне верзије АНСИ / ИСО / ИЕЕЕ / В3Ц, савладајте стандарде. Покушајте да користите стандардне кодове кад год можете.
  9. Покушајте да опонашате унапред припремљене једноставне библиотеке, посебно библиотеке отвореног кода. Ово је врло корисно у раним фазама постајања програмерима библиотека / пакета. Почните са једноставним пакетима попут средњег пакета за научно рачунање и конверзију јединица. Ако сте студент, искористите не-програмске дисциплине покушавајући да примените њихове једначине и наука се множи као библиотеке.
  10. Претражите и испробајте пакете отвореног кода у свом програмском пољу. Прво преузмите бинарне датотеке / извршне датотеке пакета. Покушајте да га користите и пронађите његове снаге и слабости. Када завршите, преузмите изворни код и покушајте да сазнате како се то ради. Покушајте да поново направите те библиотеке или њихове делове. Пре свега, учините то након што видите изворни код, а затим то урадите пре него што видите изворни код. У каснијим фазама покушајте да побољшате те библиотеке.
  11. Проучите различите приступе дистрибуцији и примени компонената програмерима.
    • Програмери библиотека / пакета обично рекурзивно и / или више пута размишљају о свим проблемима који су им представљени. Замислите сваки проблем као скуп мањих проблема (низ једноставнијих задатака) или као итеративни поступак смањења обима проблема на мање домете, а затим Распоредите распоне један на други.
    • Програмери библиотека / пакета теже да генералишу. Тада им се предочи једноставан специфичан проблем, они често смисле општији проблем и покушају да га реше тако да аутоматски реши мање проблеме.
    реклама

Метод 5 од 6: Системско програмирање

  1. Разумети шта подразумева системско програмирање. Програмер система се бави „науком“ програмирања, а не њеним специфичним применама. Не везујте се за одређену позадину.
  2. Следите прва три корака да бисте постали програмер за радне површине.
  3. Похађајте уводни курс из Линеарне алгебре.
  4. Положите курс рачунарства.
  5. Похађајте дискретни курс математике и / или логике.
  6. Упознајте се са различитим основним оперативним системима. То може учинити:
    • Разумевање начина инсталирања оперативних система.
    • Научите како да инсталирате различите оперативне системе на један рачунар (опционално, али се препоручује).
    • Инсталирајте више оперативних система. Не инсталирајте ниједан други додатак на систем; уместо тога користите само основне функције које пружа оперативни систем.
  7. Пођите на курс (или можда прочитајте књигу) о архитектури рачунарског хардвера [[.
  8. Развити разумевање различитих рачунарских хардверских платформи.
  9. Започните са језиком за монтажу оперативног система / хардверске платформе по вашем избору. Касније ћете научити више монтажног језика за друге оперативне системе / платформе.
  10. Научите АНСИ Ц и Ц ++ језике, заједно са процедуралним концептима.
  11. Разумевање и вежбање стандардних Ц / Ц ++ библиотека на платформи по вашем избору. Посебну пажњу треба обратити на Библиотеку стандардних шаблона (СТЛ) и можда на Библиотеку активних шаблона (АТЛ).
  12. Претражујте мрежне ресурсе, књиге и курсеве да бисте разумели карактеристике Ц на платформи по вашем избору.
  13. Вежбајте напредно генерисање кода са Ц и Ц ++.
  14. Научите напреднији језик окупљања.
  15. Положите курс из дизајна оперативног система.
  16. Пронађите и прочитајте материјал на одређеној платформи по вашем избору. Ово ће бити лакше ако одаберете оперативни систем заснован на Унику. Овладајте системом на којем ћете касније радити.
  17. Вежбајте оно што стекнете. Направимо прво неке мале системске услужне програме. Обично помаже ако:
    • Покушајте поново да направите мале алате који су доступни на вашем систему.
    • Покушајте да мигрирате услужне програме доступне у другим оперативним системима на свој.
  18. Учите језике оним редоследом којим су вам најкориснији. Ово је једини низ у којем се први програмски језик учи да има своје значење. Прво научите АНСИ Ц, а не Ц ++, Ц #, Јава или Д. Затим научите Ц ++.
    • Ограничите први језик на Ц и само на Ц јер систем програмирања захтева да програмери буду упознати са следећим концептима:
      • Саставите стварни и целокупан изворни код.
      • Излазне датотеке објекта ниског нивоа.
      • Бинарно повезани кодови.
      • Програмирање машинског језика / монтажног језика на ниском нивоу. Многи људи верују да је језик Ц алтернативни и лакши за учење скупштинског језика. Такође подржава уметање кода склопа у код кад год желите и то је само процедурално (попут склопа).
    реклама

Метод 6 од 6: Програмирање науке

  1. Знајте шта програмер ради. Научници из програмирања су врло напредни програмери који, уместо да развијају апликације, развијају рачунарске технологије као што су кодирање, програмски језици и алгоритми за рударење подацима. Овај степен се ретко постиже без детаљних академских истраживања.
  2. Кумулативно научно знање изједначава се са четворогодишњим степеном рачунарства. То се може постићи на један од следећих начина:
    • Стекните стварну академску диплому (што је често случај).
    • Пронађите план курса за такву диплому на неком од доступних универзитета и проучите предмете сами или похађајте приватне курсеве. Теоретски то можете постићи, али требали бисте ићи првим путем.
  3. Изаберите специјализовани низ. Будите прецизнији, то боље. Ово зависи од ваших жеља. Међутим, следи листа главних тема у науци рачунарског програмирања:
    • Дизајн алгоритама (проналазак, класификација, кодирање, декодирање и откривање грешака у комуникацији је неколико примера)
    • Дизајн / оптимизација програмских језика / компајлери
    • Низови вештачке интелигенције (препознавање образаца, препознавање говора, обрада природног језика, неуронске мреже)
    • Роботика
    • Научно програмирање
    • Супер рачунање
    • Рачунарско потпомогнуто пројектовање / моделирање (ЦАД / ЦАМ)
    • Виртуелна реалност
    • Рачунарска графика (Рачунарска графика се често помеша са графичким дизајном или дизајном графичког корисничког интерфејса.) Рачунарска графика је поље проучавања начина представљања и манипулације графиком у рачунарским системима. прорачун).
  4. Размислите о стицању вишег академског степена. Можете да наставите на мастер или докторском програму обуке.
  5. Научите програмске језике и технологије релевантне за ваше одабрано програмско подручје. реклама

Савет

  • Какву год врсту програмирања желите да испробате и који год ниво желите да постигнете, размислите о похађању наставе у вашој локалној школи или колеџу у заједници. Нека вас не плаше изрази попут „Рачунарске науке“. Било који час који похађате и који не захтева почетне захтеве или захтеве биће фокусиран на подучавање основа програмирања, али свеједно се обратите свом инструктору или ментору пре Уверите се да је то оно што тражите, јер се часови попут „Вештине рада на рачунару“ могу више фокусирати на навикавање на канцеларијске апликације или нешто слично.