За да станете програмер, треба да ги развиете своите вештини од ден на ден, од година во година. Програмирањето може да ужива и да има корист (за умот, духот и финансиски). Во оваа статија, ние не ги цитираме методите кои ќе ви овозможат магично да се претвори во специјалист, а редоследот на чекори не мора да има таква. Оваа информација ќе ви даде општо познавање за тоа како да станете програмер во еден од современите области за развој.
Чекори
Еден.
Пријавете се за воведниот курс на еден (или за сите) од следните дисциплини:- логика;
- Дискретна математика;
- Програмски јазик (студија различни програмски парадигми, почнувајќи со паралелно и објектно-ориентирано програмирање, а потоа одат на функционални и логични. Руби / Пајтон / Паскал одговара на почетниците подобро, и по некоја пракса веќе може да се преселите во C ++ / C # / Java).
Совет на специјалист
Gene DetaLetsky, MS
Основач на стартап и главен инженеринг Лимнски - основач на стартап и програмерски инженер од Заливот Сан Франциско. Работел во технолошката индустрија повеќе од 30 години. Во моментов, главниот инженер во Poynt, технолошка компанија за производство на паметни терминали за бизнис.
Gene DetaLetsky, MS
Основач на стартап и главен инженер
Да научат да програмираат, опционално добиваат специјално образование. Додека курсеви за учење за програмски вештини може да бидат корисни, Jin Lelets - основачот на Startups и програмерски инженер - вели: "Помага за образование или штета повеќе? Контроверзно прашање. Да биде тоа како што може, важно е да се однесува на процесот на програмирање како учење, бидејќи за време на тоа учат на нашите сопствени грешки ".

2. Истражувајте ги основните концепти, вклучувајќи ги и табелите, пребарувањата и процедурите. Можете да погледнете во било кој од следниве производи:
МСП пристап;Db v;Фокс Про;Парадокс;MySQL е исто така погоден, бидејќи тоа е бесплатен заеднички систем, а базите на податоци се поврзани со SQL барања.
3. Одлучи што програмирање сакате да го направите. Постојат неколку видови на програмирање:
Веб програмирање;Програмирање апликации за компјутери:Програмирање оперативни системи (Специјалист е ангажиран во развој на еден оперативен систем или сет на системи);Програмирање кое не е прикачено на одредена платформа.Програмирање применети дистрибуирани системи;програмски библиотеки, платформи, рамки, јадра;Системско програмирање:Програмирање на јадра;програмски возачи;Програмски компајлери.Научно програмирање.
Четири. Истражувајте ги технологијата и програмските јазици поврзани со сферата што ви се допаѓа. Во следните делови од овој напис, ние зборуваме за конкретни задачи во различни области на програмирање.
Метод 1 од 6:
Веб програмирање
Еден.
Знам што вклучува веб програмирање. Веб апликации се компоненти на софтвер кои се забрзани на интернет архитектурата. Ова значи дека пристапот до апликации се врши со користење на веб прелистувач (на пример, Firefox или Internet Explorer). Оваа надградба не мора да бара активна врска со Интернет. Ова само значи дека веб-апликациите се изградени врз основа на стандардни веб-технологии, вклучувајќи го и следново:

2
Проверете Различни сајтови за да се разбере како тие се изградени. (Десен-клик на која било област, потоа "Преглед на изворот" или притиснете F12.) Обрнете внимание на разновидноста на информации и дизајн и не бркајте. Најмалку еден од секој тип на сајтови треба да се посети:
Корпоративно место (сајтови на трговски корпорации, непрофитни, државни организации);Веб-страници одговорни за индексирање на мрежата (сајтови за пребарување, сајтови за пребарување на мета податоци, специјални пребарувачи, директориум);сајтови за интелигентна анализа на податоци;лични локации;Информации и енциклопедиски сајтови (Wiki сајтови, податоци листи, технички информации, упатства за користење со директориуми, блогови и дневници, вести и новински агенции, жолти страници и така натаму);Социјални сајтови (социјални мрежи, сајтови за создавање обележувачи и белешки);Колаборативни сајтови (оваа категорија ги вклучува сите страници споменати погоре, вклучувајќи Wiki сајтови и блогови).
3. Проверете најмалку еден метод или техника Brainstorming и апликацијата која е создадена врз основа на овој метод. На пример, графикони за Brainstorming и MS Visio.

Четири. Дознајте што се градат веб-страниците на шемата. Ова вклучува создавање на специјални веб-дијаграми, картички и навигација.

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

6. Проверете ги основите на Интернет инфраструктурата. Ќе треба да имате најмалку основни познавања за:
Основни протоколи за веб сервиси (HTTP, FTP, SMTP и POP3 или IMAP4);Програми за програми Веб сервери (По можност за платформата со која ќе работите најчесто);Веб прелистувачи;Е-пошта сервери и клиент софтвер.
7. Испитајте ги темелите на HTML и CSS. За овие цели, можете да го користите софтверскиот пакет "она што го гледате е она што го добивате (WYSIWYG)".

осум. Истражете ги технологиите поврзани со XML и XML (на пример XSL и XPath). Дали не мора, сепак, овие знаења ќе бидат корисни.

Девет. Започнете со создавање на едноставни статични сајтови и направете го додека не ги совладате темелите HTML.

10.
Истражуваат програмски јазик за скриптирање на клиентот. Најчесто учат jаvascript. Можете исто така да направите
VBScript, Сепак, овој јазик е некомпатибилен со повеќето прелистувачи.

Единаесет. Заземање на клиент скриени јазични програмирање што сте ги избрале. Обидете се да го постигнете максимумот со еден од овој јазик. Одете на следниот чекор само кога можете да навигирате барем еден јазик од овој тип.

12. Светлина барем еден сервер програмски јазик. Ако одлучите да работите само со еден вид серверски софтвер, прочитајте барем еден од програмските јазици што се користи за да го напишете овој софтвер. Ако сте подготвени за повеќе, научете барем еден програмски јазик за секој серверски софтвер.

13. Откако го проучувале програмскиот јазик на серверот, креирајте тест-проект.

Четиринаесет
Метод 2 од 6:
Програмирање апликации за стационарен компјутер
Еден.
Дознајте што треба да направите. Како по правило, програмерите пишуваат кодови за апликации кои се користат во бизнисот, така што треба да дознаете како функционира бизнисот, како е организирано и како е изграден нејзиниот финансиски систем за да
Заштедете време.

2.
Истражуваат различни типови на архитектура на компјутерска опрема. Тоа ќе биде корисно да се проучат темелите на изградбата
Дигитални кола и
Компјутерска архитектура. Сепак, некои експерти веруваат дека во почетната фаза не е потребно, така што ќе биде доволно за читање 2-3 статии на оваа тема. Можете да се вратите на ова кога ќе го совладаме вашиот прв програмски јазик.

3. Истражува Програмски јазик Основно ниво. Слободно можете да дознаете што се смета за детска, само затоа што сте постари. Пример за таков јазик е гребење. Ваквите јазици ќе го олеснат со вашиот прв програмски јазик. Сепак, овој чекор не може да се смета за задолжителен. Покрај тоа, можно е да го направите ова пред претходниот чекор.


Пет. Снимање до воведниот курс Процедурални програмски јазици. Без оглед на јазикот што го избирате подоцна, ви треба познавање на процедуралното програмирање. Покрај тоа, многу експерти веруваат дека со цел да се разбере програмирањето како целина, треба да започнете со ова.

6. Испитајте еден од напредните симулациски системи (на пример, UML или ORM).

7. Започнете со пишување мали конзолни или конзолни апликации. Можете да ги користите вежбите од програмирање учебници. Изберете алатка за пишување на програмата на програмскиот јазик со кој работите.

осум. Пријавете се за курс за програмирање во избраното напредно ниво. Мора да ги разберете следните концепти за да можете да ги примените со релативна леснотија:
Внесете и излез информации од страна на клиентите во програмата;Логика проток и проток на извршување на програмата во процедурални програмски јазици;избор, намена и споредба на променливи;Создавајќи клучни структури вклучувајќи ако..Тогаш..Друго и Избери / Префрли..Случај;Структури за отстранување вклучувајќи Додека..направи, направи..Додека / до, Зашто..Следно;Синтаксата на вашиот програмски јазик за креирање и име на процедури и функции;Типови на податоци и методи за обработка на податоци;Кориснички-дефинирани типови на податоци (записи, структури, единици) и нивна употреба;Ако вашиот јазик поддржува Функции за преоптоварување, Мора да ги разбереш;Методи за анализа на меморијата во избраниот јазик (насоки, звуци и така натаму);Ако вашиот програмски јазик поддржува Преоптоварување на операторите, Треба да го знаете ова;Ако на вашиот јазик постојат совети за функции, мора да ги разберете.
Девет. Започнете со примена на знаењето.

10. Одете во воведниот курс барем еден програмски јазик во друга програмска парадигма. Еден јазик треба да се научи во секоја парадигма, и, по правило, сите добри програмери доаѓаат и прават, сепак, имате доволно за да започнете со еден, да работите со него, да работите, а потоа да одите кај другите кога веќе имате вистинско искуство во програмирањето. Погледнете во една од следните области:
Парадигма на логично програмирање;парадигма на функционално програмирање;Објектно-ориентирана парадигма.
Единаесет. Обидете се да споредите два програмски јазици што веќе сте ги совладале. Оцени ги предностите и слабостите на секоја од нив. Обично го прави тоа вака:
Земете едноставен пример за вашата рана работа на првиот програмски јазик и преработете го со користење на вториот јазик.Направете нов проект и ги користите двата јазика таму. Можеби некои работи што нема да можете да ги направите на еден од јазиците - сè ќе зависи од проектот и јазиците што ги избравте.Направи креми или споредете слични структури на двата јазика и нивните разлики во табелата со вртење.Најдете начин да ги повторите дизајните кои се на ист јазик користејќи друг јазик.
12. Испита концепт Визуелно програмирање Со еден од избраните јазици. Речиси сите програмски јазици имаат верзии или библиотеки кои го поддржуваат визуелното програмирање и други видови на конзоли или конзола-програмирање. Ова може да се направи на следниов начин:
Одете во воведниот курс за програмирање на настани. Во суштина, визуелното програмирање се базира на настани и обработка на настани (со користење на избраниот програмски јазик).Обидете се да работите со голем број на софтвер за фиксни компјутери за да разберете што прават овие програми. Повеќето програмери нудат бета-верзии на апликации кои можат да се уживаат. Внимавајте на развојот на корисничкиот интерфејс.Прочитајте статии или прирачници за работа со графички кориснички интерфејс.
13. Започнете со примена на вашето знаење, развивање на едноставни апликации. Обидете се да го користите знаењето стекнато за да ги решите секојдневните проблеми. На пример, запишете програми кои мора да ги преименувате датотеките, визуелно да ги споредат текстуалните датотеки, да ги копирате имињата на документите на одредено место во посебна мемориска датотека или текстуална датотека и така натаму. За да започнете со, нека биде едноставно.

Четиринаесет. Креирај проект за дипломирање. Стори сé за крај, примена на методи за визуелно програмирање што веќе сте го совладале.

петнаесет. Продлабочување на вашето познавање на визуелните шеми, библиотеки и софтверски пакети, пренесување на курсеви за напредни, посветувајќи посебно внимание на помалите нешта и расте за да дознаете како повеќе техники за работа со рамки од интернет извори.

Шеснаесет години. Побарајте други софтверски пакети и библиотеки на визуелни елементи за вашите програмски јазици и ги испитате.

17. Пријавете се за графички курсеви (не графички дизајн). Тоа ќе биде многу корисно ако планирате да креирате предмети со прекрасен кориснички интерфејс.

Осумнаесет.
Стани развивач на игри (опционално). Програмирање
Компјутерски игри Смета програмирање за стационарни компјутери. Ако сакате да креирате игри, ќе треба да ги совладате основите на ова програмирање по завршувањето на чекорите опишани погоре. Ќе треба да поминете низ курсот за програмирање, а вториот програмски јазик што треба да го изберете треба да биде логичен / функционален јазик (по можност пролог или LISP).
Метод 3 од 6:
Програмирање применети дистрибуирани системи
Еден.
Започнете програмирање Применети дистрибуирани системи. Ова програмирање Се смета за еден од најтешките и бара широк спектар на знаења во областа на компјутерите и информатичките технологии.

2. Завршете го експресниот курс на Телефонија и соодветна опрема. Не е неопходно да го направите ова, но благодарение на овој курс подобро ќе ја разберете мрежната топологија.

3. Проверете ја архитектурата на мрежна опрема и уреди, вклучувајќи ги и хабовите, прекинувачите и рутерите.

Четири.
Истражувајте мрежни протоколи и сите поврзани со нив. Ќе треба добро да го разберете моделот
ОСИ (Отворени системи Интерконекција - Меѓународна програма за стандардизација на податоци помеѓу системите на различни производители), Ethernet, IP, TCP,
UDP и http. Само после тоа можете да почнете да работите.

Пет. Истражете го јазикот на XML и ги учат да го користат.

6. Почнете да го учат јазикот на дистрибуирано програмирање. Ако зборуваме за програмирање на Windows, ќе има било кој јазик кој го поддржува Windows Scripting Host. Кога програмирање под Linux користи баш и Perl. Се препорачува да се истражуваат jаvascript за да работат со двете платформи поради следните причини:
jаvascript е поддржан од практичните сите скриптни домаќини на сите оперативни системи (Windows Scripting Host го поддржува стандардното jаvascript, а повеќето дистрибуции овозможуваат пакет за поддршка на jаvascript).Се верува дека го проучува полесно.jаvascript е изграден на синтаксата на Алгол, и ова ќе ви овозможи да се запознаете со многу други програмски јазици, и да го изберете вториот јазик што ќе ви биде полесен (В, В++, C #, Java и J # се базираат на синтакса на Алгол).Учење jаvascript, се запознавате со веб-страниците за скриптирање на клиентот, а тоа значи двојна употреба!
7. Прво користете само процедурално програмирање на ист јазик. Подоцна можете да користите покомплексни техники и парадигми кои одговараат на вашиот скриптен јазик и што поддржува. Сите скрипти јазици користат процедурални програми до еден степен или на друг.

осум. Со помош на скриптираниот јазик сте студирале, започнете со пишување скрипти кои ќе ги принудат машините за комуникација. Дознајте што ви треба. Ќе има доволно лесна размена на податоци.

Девет.
Одете на програмскиот јазик за стационарни компјутери. Препорачливо е да се избере јазик со неколку парадигми - на пример
Пајтон. Истражувајте ги темелите на овој јазик. Многумина избираат Java од различни причини, но во моментот C # јазикот станува се повеќе и повеќе популарен. Причините за кои е подобро да се избере Java и C # се на следниов начин:
Ова се објектно-ориентирани јазици кои слободни програмери во големите тимови од потребата да размислуваат за сложеноста на имплементацијата, бидејќи двата јазика ги поддржуваат компонентите (готови интегрирани кодови единици кои ви дозволуваат да вршите одредени задачи и други програми ).Тие го поддржуваат програмирањето на настани, како и објектно-ориентирано и процедурално програмирање до одреден степен.Рамката, врз основа на која е проширен јазикот, се дистрибуира стандардно (во случај на Јава).Способност за користење на готови пакети кои се одговорни за мрежата, т.е. пакети за отворен код и за вградени во рамки. Благодарение на овие програмери, полесно е да се изгради нивната работа врз основа на веќе постоечки код.
10
Посвети поголемо внимание Клучни карактеристики на јазикот, особено кога се работи за мрежи. Помалку внимание може да се посвети на корисничкиот интерфејс, вклучувајќи елементи како што се излез на податоци, дизајн на прозорци и други техники.

Единаесет. Испитајте ги темелите на архитектурата на применети дистрибуирани системи. Ова може да се направи независно со помош на книги, интернет извори или курсеви. Што и да избирате, ќе ви биде важно да ги разберете основните принципи на градежни применети дистрибуирани системи.

12. Испитајте го развојот на сервисираните компоненти и Услуги На вашиот избран јазик.

13. Истражуваат една или повеќе од следниве технологии. Се препорачува барем да знаете за сите нив. Повеќето програмери на применети дистрибуирани системи не се ограничени на еден или два јазика, и тие учат барем еден јазик за секој оперативен систем. Ова е објаснето со фактот дека со цел да се направи дистрибуирана апликација, ќе треба да креирате според оваа програма за најмалку главните оперативни системи.
Општа архитектура посредни барања за објекти (Корба)Едноставен протокол пристап до објекти (САПУН)Асинхрони jаvascript и XML (Ајакс)Дистрибуиран модел на објект (DCOM).Нето ремонтXML веб-услугиМетод 4 од 6:
Програмирање библиотеки, платформи, кадрирање, нуклеарна енергија
Еден. Дознајте каков вид на програмирање на кернелот. Нуклеарните програмери се искусни програмери кои се префрлени од развој на апликации за програмирање на код единици кои би можеле да користат други програмери.

2. Истражувајте го програмскиот јазик за поддршка на развојот на компонентите и пакетите кои би можеле да се искористат подготвени ако сеуште не сте направиле.

3. Поминете напреден UML и ORM курс. Најчесто се користи или нешто едно или и двете.

Четири. Оди низ курсот Софтверско програмирање.

Пет. Истражуваат најмалку модуларни методи за програмирање, програмирање на компоненти, објектно-ориентирани програми и основни принципи на работа во овие системи. Колку повеќе парадигми и јазици ќе знаете, толку полесно ќе ви биде да станете програмери и пакети.

6. Испита различно ОС и рамки кои работат во овие системи.

7. Освен посебно внимание на рамковните рамки, независно од платформата, како и програмските јазици и технологии.

осум.
Ако програмските јазици што веќе сте ги изучувале, поддржуваат стандардни верзии ANSI/
ISO/
IEEE/
W3C, Олеснување на основите. Ако е можно, користете го стандардниот код.

Девет. Обидете се да ги пресоздавате едноставните готови библиотеки, особено со софтвер со отворен код. Тоа ќе биде многу корисно во првата фаза. Започнете со едноставни пакети (на пример, преводот на единиците на мерење или пресметките на просечното ниво на тежина). Ако студирате на Универзитетот, користете информации добиени во други класи и обидете се со користење на равенки и податоци како библиотеки.

10. Побарајте пакети со отворен код и обидете се да работите со нив во вашата сфера за програмирање. Прво преземете бинарни и извршни датотеки. Започнете со работа со нив за да разберете што се склучени нивните предности и слабости. Потоа преземете го изворниот код и обидете се да дознаете како е создаден. Обидете се да ги пресоздавате библиотеките или нивните делови. Прво направете го тоа откако ќе го видите кодот, а потоа - порано. Кога ќе почнете да го разбирате ова, обидете се да ја подобрите библиотеката.

Единаесет. Истражуваат различни пристапи за дистрибуција и распоредување на компоненти за програмери.
Како по правило, програмерите на библиотеки и пакети се обидуваат да ги презентираат сите задачи во обратен редослед и / или итеративно. Обидете се да ја презентирате задачата како збир на мали задачи (редослед на едноставни акции) или како процес на повторување што ви овозможува да го намалите големиот обем на мал, а потоа да го поставите едни на други.Програмерите на библиотеката и пакетот често се генерализираат. Кога тие имаат едноставна и разбирлива задача, тие се обидуваат да презентираат заеднички проблем и да го решат тоа што автоматски ги реши сите помали задачи.Метод 5 од 6:
Системско програмирање
Еден. Дознајте што вклучува системско програмирање. Систем програмери работат со научна страна на програмирање, а не со специфични задачи. Не се врзувајте на одредена платформа.

2. Следете ги препораките во првите три чекори за програмери за стационарни компјутери.

3. Одете во воведниот курс на линеарна алгебра.

Четири. Поминете го курсот Методи на порамнување.

Пет. Завршете го логиката и / или дискретниот курс за математика.

6. Запознајте се со различни оперативни системи без додатоци. Ова може да се направи на следниов начин:
Дознајте како се инсталирани системите.Научете како да инсталирате оперативни системи на компјутер (препорачано).Инсталирајте повеќе од еден систем. Не користете помошни пакети - Земете само главната функционалност на оперативните системи.
7. Завршете го курсот за архитектурата на компјутерска опрема (или прочитајте ја литературата на оваа тема).

осум. Истражувајте ги карактеристиките на различни хардверски платформи.

Девет. Запознајте се со основите на асемблерскиот јазик на избраниот оперативен систем или хардверска платформа. Подоцна ќе треба да го научите јазикот на асемблерот на други платформи и системи.

10. Испитајте ги јазиците ANSI C и C ++, како и основните принципи на процедуралното програмирање.

Единаесет.
Истражувајте ги стандардните библиотеки на C / C ++ и почнете да ги користите на вашата избрана платформа. Посебно внимание се посветува на библиотеката на стандардни шаблони (
Stl) и библиотека на активни шаблони (
АТЛ)

12. За да разберете како функционира C / C ++ на вашата платформа, читајте интернет извори, книги и курсеви.

13. Започнете со создавање на покомплексен код на c и c++.

Четиринаесет. Истражуваат повеќе сложени нијанси.

петнаесет. Продажба на оперативни системи за развој.

Шеснаесет години. Најдете и прочитајте ја документацијата за вашата избрана платформа. Ќе ви биде полесно да работите со оперативниот систем базиран на UNIX. Ќе треба многу добро да го разберете овој систем.

17. Започнете со примена на знаењето. Прво креирајте мали системи за комунални услуги. Ќе биде корисно да го направите следново:
Рекреира мали алатки кои веќе постојат во вашиот систем.Обидете се да ги поврзете комуналните услуги кои се во други системи, со вашиот систем.
Осумнаесет. Ги испита јазиците во редот во кој ќе биде точен. Само во овој случај е важен, кој е вашиот прв програмски јазик. Подобро е прво да се истражи ANSI C, а не C #, Java или D. Потоа оди во в++.
Барањето за познавање на јазикот C и само C се должи на фактот дека системскиот програмер мора да го поседува следното знаење:Реална и целосна компилација на изворниот код.Излезните датотеки на цените на пониско ниво.Врзни бинарни датотеки.Програмирање на јазикот јазик на пониско ниво и програмирање на асемблер. На јазикот со многу полесно да учат асемблер. Покрај тоа, овој јазик ви овозможува да го поставите кодот на асемблерскиот јазик во главниот код во секое време, и ова е процедурален јазик (како и асемблер).Метод 6 од 6:
Научно програмирање
Еден. Дознајте што го прави научниот програмер. Научните програмери се многу искусни специјалисти кои не развиваат апликации, туку технологија: енкрипција, програмски јазици, алгоритми за анализа на интелектуална податоци. За да го постигнете ова ниво на знаење без посебно образование и упорност речиси невозможно.

2. Акумулирајте научни сознанија еквивалентни на износот на информациите дадени на Универзитетот. Ова може да се направи на неколку начини:
Внесете го универзитетот (обично сите го прават тоа).Дознајте што е универзитетска програма во оваа област во еден од модерните универзитети, и започнете или да се вклучите во курсеви, или да се научите себеси. Теоретски, ова ќе ви овозможи да ги добиете сите потребни знаења, но најдобро е да влезете во Универзитетот.
3. Изберете специјализација. Толку повеќе тесен тоа, толку подобро. Сето тоа зависи од вашите лични преференции, но ние ќе обезбедиме листа на основни сфери во научното програмирање:
Развој на алгоритми (пребарување, сортирање, енкрипција на податоци, декрипција, дефиниција грешки во пренос на податоци);развој и оптимизација на програмски јазици и компајлери;Вештачки ударник (признавање на повторувачки елементи, говор, преработка на природен јазик, нервни мрежи);роботика;всушност научно програмирање;суперкомпјутери;CAD / CAM системи (компјутерски дизајн);виртуелна реалност;Компјутерска графика (компјутерска графика често се меша со графички дизајн или графички кориснички интерфејс дизајн. Компјутерската графика е сфера на знаење која ви овозможува да дознаете како да креирате графика и да управувате со него во компјутерски системи).
Четири. Размислете за добивање на научен степен. Обидете се да станете вонреден професор или вонреден професор.

Пет. Истражувајте ги технологијата и програмските јазици поврзани со избраната насока.
Совети
- Без оглед на видот на програмирање што го избирате и кое ниво би сакале да го постигнете, размислете за курсеви или универзитет. Нека не ги исплашат имињата на курсевите. На сите класи кои не обезбедуваат присуство на кое било посебно знаење меѓу учениците даваат основа за програмирање. За да бидете сигурни дека курсот ви одговара, разговарајте со програмата со наставникот. Запомнете дека курсот со името "компјутерска писменост" може да даде информации за програмирање, но за вештини за користење на канцелариски апликации.