Как да бъда програмист

Автор: John Stephens
Дата На Създаване: 1 Януари 2021
Дата На Актуализиране: 2 Юли 2024
Anonim
Как се става програмист? (уебинар със Светлин Наков)
Видео: Как се става програмист? (уебинар със Светлин Наков)

Съдържание

Ставането на програмист е трупащ се процес, който изгражда вашите умения с течение на времето и може да се превърне в забавна и полезна работа (интелектуално, психически и финансово). ). Този урок не ви обещава магически начин да станете програмист лесно и последователността от стъпки не е толкова важна, но ще разберете как да станете програмист. в програмист в едно от съвременните програмни полета.

Стъпки

  1. Вземете уводен курс по един (или всички) от следните предмети:
    • Логика
    • Дискретна математика
    • Език за програмиране (За начинаещи е най-добре да научат C ++ / Java / Python)


    Джийн Линецки, MS

    Основателят и технически директор на стартиране Джийн Линецки е основател на стартъп и софтуерен инженер в района на залива на Сан Франциско. Той е във високотехнологичната индустрия повече от 30 години и в момента е технически директор в Poynt, технологична компания, която произвежда интелигентни устройства за продажба на място за бизнеса.

    Джийн Линецки, MS
    Стартиращ основател и технически директор

    Нямате нужда от степен на кодиране. Макар че изучаването на езици за програмиране е от полза, Джийн Лайнски, софтуерен инженер и основател на стартираща компания, казва: „Дали дадена степен е полезна или не е противоречиво. там можете да мислите за програмирането като за чиракуване - ще се поучите от грешки. "


  2. Научете за концепции за бази данни като таблици, изгледи / заявки и процедури. Можете да използвате всеки прост пакет от бази данни, за да направите това, например:
    • MS Access
    • DB V
    • Fox Pro
    • Парадокс
    • MySQL е добра база данни за учене, тъй като е безплатна, често използвана и до базите данни често се осъществява достъп със SQL заявки.

  3. Решете какъв тип разработчик искате да бъдете. Програмистите обикновено попадат в една от следните категории:
    • уеб разработчик
    • Програмист за настолни приложения
      • Ориентиран към операционна система програмист (свързан с една операционна система или набор от операционни системи)
      • Независим разработчик на платформа
    • Разпределен програмист на приложения
    • Библиотеки / платформа / рамка / основен програмист
    • Системен програмист
      • Програмист на персонала на ядрото
      • Шофьор програмист
      • Програмист компилатор
    • Учен по програмиране
  4. Проучете технологиите и езиците за програмиране, свързани с избраната от вас област на програмиране. Следващите раздели ще разделят задачите на различните видове програмиране. реклама

Метод 1 от 6: Уеб програмиране

  1. Разберете от какво се нуждае уеб програмирането. Уеб приложенията са софтуерни компоненти, предназначени да работят на върха на интернет архитектурата. Това означава, че приложенията са достъпни чрез софтуер на браузър като Firefox или Internet Explorer. Тези приложения се намират на върха на интернет архитектурата, което означава, че не се изисква реална връзка с интернет. Това означава, че уеб приложенията са изградени върху стандартни уеб технологии като:
    • HTTP
    • FTP
    • POP3
    • SMTP
    • TCP
    • IP протоколи
    • HTML
    • XML
    • Coldfusion
    • ASP
    • JSP
    • PHP
    • ASP.NET
  2. Разгледайте различните страници, за да видите как обикновено изглеждат. (Чрез щракване с десния бутон на мишката, след което изберете Преглед на източника (преглед на изходния код) или натискане на F12). Трябва да търсите разнообразие във вида / съдържанието на уебсайта, а не в броя на уеб страниците, които виждате. Като цяло ще трябва да посетите поне една страница за всеки от следните типове уебсайтове:
    • Страници за представяне на компанията (търговски дружества, неправителствени компании / организации, държавни органи)
    • Инструменти за уеб индексиране (търсачки, сайтове за мета търсене, специализирани търсачки, директории)
    • Сайтове за извличане на данни
    • Лични страници
    • Страници с документация / енциклопедия (Wiki, таблици с данни, технически спецификации и указатели за потребителски указания, блогове и списания, новини и новинарски сайтове жълти страници ...)
    • Социални сайтове (социални портали, маркери и онлайн сайтове за водене на бележки)
    • Сайтове за сътрудничество (включително всички горепосочени категории, като уикита и блогове)
  3. Научете поне една техника / метод за мозъчна атака и софтуер, използван за това. Примери: диаграми за мозъчна атака и софтуер MS Visio.

  4. Запознайте се със структурата на сайта. Това е създаването на концептуални карти на сайта, карти на сайта и навигационни структури.
  5. Вземете интензивен курс за графичен дизайн. Опитайте се да научите поне един графичен софтуерен пакет за редактиране / манипулация (Не се изисква, но силно се препоръчва).

  6. Научете основите на интернет инфраструктурата. Това включва разбиране на основната идея за:
    • Общи протоколи за уеб услуги (HTTP, FTP, SMTP и POP3 или IMAP4)
    • Софтуер за уеб сървър (за предпочитане софтуерът за платформата, на която ще работите предимно с него)
    • Софтуер за сърфиране в мрежата.
    • Сървър и клиентски софтуер за електронна поща

  7. Научете HTML и CSS езици. Може да се нуждаете и от пакета „Какво виждате, това получавате (WYSIWYG) (Какво виждате, получавате)“ за редактиране на HTML.
  8. Научете XML и свързани с XML технологии като XSL и XPath (по избор, но се препоръчва).
  9. Създавайте прости статични уеб страници, докато не се запознаете с HTML.
  10. Научете клиентски скриптов език. Повечето потребители учат JavaScript. Други учат VBScript, но той не е съвместим с повечето браузъри.
  11. Запознайте се с езика на сценария на клиента, който сте научили. Опитайте се да се постараете само с този език. Продължете само ако сте запознати поне с езика за скриптове на клиента.
  12. Научете поне един език за програмиране на сървъра. Ако решите да се ограничите до сървърния софтуер, научете програмните езици, поддържани от този софтуер. Ако не, научете поне един език за програмиране за всеки сървърен софтуер.
  13. Създайте пилотен проект за себе си, след като завършите изучаването на езика за програмиране на сървъра.
  14. Създайте свой собствен уебсайт и започнете да експериментирате със своя онлайн. реклама

Метод 2 от 6: Коремно програмиране на настолни приложения

  1. Разберете какво да правите с програмирането на настолни приложения. Повечето десктоп кодери са за бизнес решения, така че опознаването на техния бизнес, организационните им структури и финансовите им структури спестява много време.
  2. Изучаване на различни архитектури на компютърен хардуер. Ще представлява интерес основен курс по дизайн на цифрови схеми и друг по компютърна архитектура. Някои хора обаче смятат, че е доста трудно да го научат за начинаещи, така че четенето на два или три урока (като този и този) е достатъчно. След това можете да се върнете към тази стъпка, след като научите първия си език за програмиране.
  3. Научете елементарен език за програмиране (за деца). Не се притеснявайте да научите такъв език, само защото сте твърде възрастни, за да ви наричат ​​„хлапе“. Пример за такива езици за програмиране е Scratch. Тези езици могат значително да намалят трудността при изучаването на вашия първи език за програмиране. Тази стъпка обаче не е задължителна, можете да я направите и преди предишната стъпка.
  4. Научете за процедурни, обектно-ориентирани и функционални модели на програмиране.
  5. Вземете основен курс по един от процедурните езици за програмиране. Който и език да изберете по-късно, пак ще ви е необходима известна степен на процедурно програмиране. Освен това програмистите смятат, че процедурното програмиране е най-лесната отправна точка за схващане на идеята за програмиране като цяло.
  6. Научете поне един усъвършенстван метод за моделиране като UML или ORM.
  7. Започнете да пишете някакво малко конзолно приложение или нещо подобно. Можете да използвате малките упражнения в книги за езици за програмиране. За да направите това, изберете инструмент за писане на програми според езика за програмиране, който възнамерявате да пишете.
  8. Вземете по-напреднал курс по език за програмиране по ваш избор. Уверете се, че разбирате следните понятия и можете да ги приложите с относителна лекота, преди да продължите напред:
    • Входна и изходна информация за потребителите на програма.
    • Логическият поток и потокът на изпълнение на програмите на процедурни езици.
    • Деклариране, присвояване и сравняване на променливи.
    • Изявления за разклонения при програмиране като if.. then..else и select / switch..case.
    • Циклични изявления като while..do, do.. while / до, за..напред.
    • Синтаксисът на вашия програмен език за създаване и извикване на процедури и функции.
    • Типове данни и манипулиране с тях.
    • Дефинирани от потребителя типове данни (записи / структури / единици) и тяхното използване.
    • Ако вашият език поддържа претоварване на функции, разберете го.
    • Методи за достъп до паметта на избрания от вас език (указатели, как да се чете съдържанието на която и да е клетка ...)
    • Ако вашият език поддържа претоварване на оператора, разберете го.
    • Ако вашият език поддържа функционални указатели, разберете го.
  9. Прилагайте усъвършенствани техники, които сте научили.
    • Обектно ориентиран модел.

  10. Посетете основен курс по поне един друг език за програмиране в друг модел на програмиране. Трябва да научите един език за програмиране за всеки модел, както правят повечето напреднали програмисти. Обикновено обаче трябва да започнете с език, да работите върху него известно време, да приложите знанията си и да го практикувате. След като имате практически опит в програмирането, научете нов език. Опитайте един от следните езикови масиви:
    • Модел на логическо програмиране.
    • Модел на функционално програмиране.

  11. Нека се опитаме да сравним двата езика за програмиране, които сте научили досега. Оценете силните и слабите страни на всеки език. Това обикновено се прави от:
    • Вземете по-ранен прост модел на работа с първия език за програмиране и го пренапишете във втория език за програмиране.
    • Създайте нов проект и го изпробвайте на двата езика. Понякога в зависимост от това кой проект сте избрали и езика, който сте избрали, е малко вероятно да успеете да го направите и на двата езика!
    • Сравнете като бърза справочна таблица или обобщена таблица между две подобни изявления на два езика и уникалните характеристики на всеки.
    • Опитайте се да намерите начин да имитирате уникалните характеристики на един от езиците в другия.

  12. Научете концепции за програмиране, използвайки един от езиците, които сте научили. Повечето езици за програмиране имат версии / библиотеки, които поддържат визуализация и други видове програмиране, които помагат в комуникацията или подобни. Можете да направите това чрез:
    • Научете малко за програмирането на събития. Повечето визуални програми до известна степен разчитат на събития и обработка на събития (използвайки избрания от вас език за програмиране).
    • Изпробвайте колкото можете повече настолен софтуер и разберете какво правят. Повечето компании за разработка на софтуер предоставят на потребителите тестови (бета) версии на продукти, за да тестват софтуера. Следователно, бъдете в крак с напредъка на потребителския интерфейс.
    • Прочетете някои статии или уроци за графичен потребителски интерфейс.
  13. Започнете да прилагате знанията си за малки софтуерни проекти, които проектирате. Опитайте да приложите уменията си за програмиране към проблемите, с които се сблъсквате всеки ден. Например напишете програма за групово преименуване на файлове, визуално сравнете текстовите файлове, копирайте имената на файловете в директория в памет / текстов файл и т.н. Не забравяйте, че първо е толкова просто.
  14. Създайте виртуален „дипломен проект“. Завършете проекта до края, като прилагате техниките за визуализация, които сте научили досега.
  15. Разширете разбирането си за визуални рамки / библиотеки / пакети, които преди сте научили, като вземете разширени курсове, обърнете повече внимание на детайлите и научете повече съвети и трикове за рамката. вашата работа от онлайн ресурси.
  16. Потърсете други пакети / библиотеки на визуални елементи за вашия език за програмиране и ги изучете.
  17. Вземете графичен курс (не графичен дизайн). Това ще бъде много полезно за програмисти, които искат да напишат атрактивни елементи на потребителския интерфейс.
  18. Станете програмист на игри (по избор). Програмирането на игри все още се счита до голяма степен за настолно програмиране. Ако планирате да станете разработчик на игри, ще трябва да научите повече за програмирането на игри, след като изпълните тези стъпки. Графичен курс се изисква за програмисти на игри, а вторият език по избор в предишните стъпки трябва да бъде логически / функционален език за програмиране (трябва да се избере Prolog или Lisp). реклама

Метод 3 от 6: Разпределено програмиране на приложения

  1. Научете за разпределеното програмиране на приложения. Разпределеното програмиране на приложения се смята от мнозина за едно от най-трудните за научаване и изисква богато познаване на компютрите и комуникационните технологии.
  2. Разгледайте бързо гласовите системи и техния хардуер. Тази стъпка не е задължителна. Много е полезно обаче да имате разбиране за мрежовите топологии.
  3. Запознайте се с хардуерната архитектура и мрежовите устройства като централни концентратори (концентратори), комутатори и рутери (рутери).
  4. Вземете курс по протоколи и основи. Нуждаете се от добро разбиране на модела за свързване на отворени системи (OSI), Ethernet, IP, TCP, UDP и HTTP, преди да започнете с програмирането на разпределени приложения.
  5. Научете XML езика и се запознайте с него.
  6. Започнете с изучаване на скриптов език за интерпретатора на команди. За програмиране, базирано на Windows, това може да бъде всеки скрипт, който работи с Windows Scripting Host. За програмиране, базирано на Linux, скриптове Bash и Perl ще бъдат достатъчни. Силно се препоръчва JavaScript за това и на двете платформи поради следните причини:
    • Той се поддържа от повечето инструменти за скриптове във всяка операционна система (Windows Scripting Host поддържа JavaScript по подразбиране, повечето дистрибуции на Linux имат пакет за комуникация за поддържане на скриптове за JavaScript) .
    • Много програмисти се считат за по-лесни за учене.
    • Той има синтаксис, получен от ALGOL, който ви позволява да свикнете с много други езици за програмиране, когато трябва да изберете втори език за програмиране C, C ++, C #, Java и J #, всички имат синтаксис, извлечен от ALGOL.
    • Като изучавате JavaScript, ще се запознаете с клиентски скриптове за уеб страници, което очевидно е полезен страничен ефект!
  7. Първо, прилагайте процедурно програмиране само на избрания от вас скриптов език. След това можете да използвате по-усъвършенствани програмни модели и техники според вашия скриптов език и какво поддържа. Всички скриптови езици са свързани до известна степен с процедурно програмиране.
  8. Използвайте скриптовия език, който сте научили, за да пишете скриптове, които осъществяват комуникацията между машините. Разберете какво е необходимо, за да го направите. Достатъчна е само проста информация за контакт.
  9. Преминете към език за програмиране / скриптове за настолни компютри. Най-добрият е език с много парадигми като Python. Предварително проучване за този втори език. Java е избраният език за повечето програмисти по много причини. C # обаче помага да се създаде по-бърз импулс в този масив. Java и C # са предпочитани поради следните причини:
    • Те са обектно-ориентирани езици за програмиране, които помагат на програмистите в големи групи да избягват внедряването на части, защото всички те са в състояние да поддържат компоненти (т.е. кодови единици, граница преводът, изпълнен за определена задача, може да се използва в други програми)
    • Те поддържат програмиране, управлявано от събития, както и ОО (обектно-ориентирано) и процедурно програмиране до известна степен.
    • Рамката, върху която е изграден езикът, се характеризира с разпределен характер (в случая на Java).
    • Предлагат се готови програмни пакети за работа в мрежа, или с отворен код, или вградени в рамката; Това улеснява разработчиците да работят върху продукти на други хора.
  10. Съсредоточете се повече върху основните езикови функции, особено тези, които поддържат работа в мрежа. Обърнете по-малко внимание на елементи на потребителския интерфейс като извеждане на информация, дизайн и техники за работния прозорец и елементи на потребителския интерфейс.
  11. Вземете курс за обучение по архитектура и дизайн на разпределени приложения. Можете да учите чрез книги, онлайн уроци или академични курсове. Така или иначе обаче трябва да разберете архитектурата на разпределените приложения и нейните концепции.
  12. Научете как да създавате сервизни компоненти, както и да използвате избрания от вас език за програмиране.
  13. Научете една или повече от следните технологии. Поне трябва да преминете през всички тях. По-голямата част от разработчиците на разпределени приложения учат не само един или два програмни езика, но поне един програмен език за всяка операционна система. Това е така, защото ако искате приложението ви да бъде „разпространено“, трябва да предоставите поне една негова версия за всяка популярна операционна система.
    • Архитектура на брокер на обща заявка за обект (CORBA)
    • Прост протокол за достъп до обекти (SOAP)
    • Асинхронен JavaScript и XML (AJAX) (асинхронен JavaScript и XML)
    • Разпределен компонентен обектен модел (DCOM) (Разпределен компонентен обектен модел)
    • .NET Remoting (Решение за обработка на отдалечени изчисления)
    • XML уеб услуги
    реклама

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

  1. Разберете какво е основното програмиране. Основните програмисти са просто напреднали програмисти, които преобразуват приложенията за програмиране в програмни кодови единици за използване от други програмисти.
  2. Ако не сте, научете език за програмиране, който подпомага изграждането на компоненти / пакети за многократна употреба.
  3. Вземете напреднал курс по UML и ORM. Повечето разработчици на библиотеки използват едното или и двете.
  4. Вземете курс по софтуерно инженерство.
  5. Научете поне модулни, базирани на компоненти, обектно-ориентирани и управлявани от събития програмни концепции и техники. Колкото повече модели за програмиране и езици разбирате, толкова по-успешен ще бъдете като разработчик на библиотека / пакет.
  6. Научете повече за различните операционни системи и програмни рамки, поддържани от тях.
  7. Фокусирайте усилията си за обучение върху независими от платформа рамки, езици за програмиране и технологии.
  8. Ако езиците, които изучавате до момента, имат стандартни версии ANSI / ISO / IEEE / W3C, овладейте стандартите. Опитайте се да използвате стандартни кодове, когато можете.
  9. Опитайте да имитирате простите библиотеки, които са готови, особено библиотеките с отворен код. Това е много полезно в ранните етапи на превръщането в разработчик на библиотеки / пакети. Започнете с прости пакети като междинните научни изчисления и пакетите за преобразуване на единици. Ако сте студент, възползвайте се от непрограмиращи дисциплини, като се опитате да приложите техните уравнения и науката се умножава като библиотеки.
  10. Търсете и опитайте пакети с отворен код във вашето програмно поле. Изтеглете първо бинарните файлове / изпълнимите файлове на пакета. Опитайте се да го използвате и открийте неговите силни и слаби страни. След като приключите, изтеглете изходния код и се опитайте да разберете как се прави. Опитайте да пресъздадете тези библиотеки или части от тях. На първо място, направете го, след като сте видели изходния код и след това го направете, преди да видите изходния код. На по-късни етапи се опитайте да усъвършенствате тези библиотеки.
  11. Изучете различните подходи за разпространение и внедряване на компоненти за програмисти.
    • Обикновено програмистите на библиотеки / пакети са склонни да мислят рекурсивно и / или многократно за всички проблеми, които им се представят. Мислете за всеки проблем като съвкупност от по-малки проблеми (поредица от по-прости задачи) или като итеративен процес за намаляване на обхвата на проблема до по-малки обхвати и след това Подредете диапазоните един върху друг.
    • Разработчиците на библиотеки / пакети са склонни да обобщават. Точно когато им се представя един прост специфичен проблем, те често мислят за по-общ проблем и се опитват да разрешат този общ проблем, така че той автоматично да разреши по-малките проблеми.
    реклама

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

  1. Разберете какво предполага системното програмиране. Системният програмист се занимава с "науката" на програмирането, а не с конкретните му изпълнения. Не се обвързвайте с определен фон.
  2. Следвайте първите три стъпки, за да станете програмист за настолни приложения.
  3. Вземете уводен курс по линейна алгебра.
  4. Посетете изчислителен курс.
  5. Вземете дискретен курс по математика и / или логика.
  6. Запознайте се с различните основни операционни системи. Това може да стане чрез:
    • Разберете как се инсталират операционните системи.
    • Научете как да инсталирате различни операционни системи на един компютър (по избор, но препоръчително).
    • Инсталирайте повече от една операционна система. Не инсталирайте друг плъгин в системата; вместо това използвайте само основните функции, предоставени от операционната система.
  7. Вземете курс (или може би прочетете книга) за архитектура на компютърен хардуер [[.
  8. Развийте разбирането за различни компютърни хардуерни платформи.
  9. Започнете с асемблерния език на избраната от вас операционна система / хардуерна платформа. По-късно ще научите повече асемблерен език за други операционни системи / платформи.
  10. Научете езиците ANSI C и C ++, заедно с процедурни концепции.
  11. Разберете и практикувайте стандартни библиотеки C / C ++ на избраната от вас платформа. Специално внимание трябва да се обърне на стандартната библиотека с шаблони (STL) и евентуално на библиотеката на активните шаблони (ATL).
  12. Търсете в онлайн ресурси, книги и курсове, за да разберете функциите на C на избраната от вас платформа.
  13. Практикувайте усъвършенствано генериране на код с C и C ++.
  14. Научете по-усъвършенстван асемблерен език.
  15. Вземете курс по проектиране на операционна система.
  16. Намерете и прочетете материали на конкретната платформа по ваш избор. Това ще бъде по-лесно, ако изберете Unix-базирана операционна система. Овладейте системата, по която ще работите по-късно.
  17. Практикувайте това, което печелите. Нека първо създадем някои малки системни помощни програми. Обикновено помага, ако:
    • Опитайте да пресъздадете малките инструменти, които са налични във вашата система.
    • Опитайте да мигрирате помощни програми, налични в други операционни системи, към вашата.
  18. Научете езици в реда, в който са най-полезни. Това е единственият масив, в който първият език за програмиране се научава да има своето значение.Първо научете ANSI C, а не C ++, C #, Java или D първо. След това научете C ++.
    • Ограничете първия език до C и само C, защото системите за програмиране изискват програмистите да са запознати със следните понятия:
      • Компилирайте действителния и целия изходен код.
      • Изходни файлове за обекти от ниско ниво.
      • Двоично свързани кодове.
      • Програмиране на машинен език / асемблерен език на ниско ниво. Много хора вярват, че езикът C е едновременно алтернативен и по-лесен за изучаване на асемблерен език. Той също така поддържа вмъкване на код за сглобяване в кода, когато пожелаете и е просто процедурен (като сглобяване).
    реклама

Метод 6 от 6: Наука за програмиране

  1. Знаете какво прави програмист. Учените по програмиране са много напреднали програмисти, които вместо да разработват приложения, те разработват изчислителни технологии като кодиране, езици за програмиране и алгоритми за извличане на данни. Тази степен рядко се постига без задълбочени академични изследвания.
  2. Кумулативното научно познание се равнява на 4-годишна степен по компютърни науки. Това може да се постигне по един от следните начини:
    • Вземете истинска академична степен (което често се случва).
    • Намерете конспект за такава степен от някой от наличните университети и изучавайте предметите сами или вземете частни курсове. Теоретично можете да постигнете това, но трябва да тръгнете по първия път.
  3. Изберете специализиран масив. Бъдете по-конкретни, толкова по-добре. Това зависи от вашите предпочитания. Следва списък на основните теми в областта на компютърното програмиране:
    • Алгоритми за проектиране (намиране, класифициране, кодиране, декодиране и откриване на грешки в комуникациите са няколко примера)
    • Проектиране / оптимизиране на програмни езици / компилатори
    • Масиви с изкуствен интелект (разпознаване на образци, разпознаване на реч, обработка на естествен език, невронни мрежи)
    • Роботика
    • Научно програмиране
    • Супер изчисление
    • Компютърно подпомогнато проектиране / моделиране (CAD / CAM)
    • Виртуална реалност
    • Компютърна графика (Компютърната графика често се бърка с графичен дизайн или дизайн на графичен потребителски интерфейс.) Компютърната графика е полето за изучаване на това как да се представят и манипулират графики в компютърни системи. изчисление).
  4. Помислете за получаване на по-висока академична степен. Можете да следвате магистърска или докторска програма за обучение.
  5. Научете езици за програмиране и технологии, свързани с избраната от вас програмна област. реклама

Съвети

  • Какъвто и тип програмиране да искате да изпробвате и каквото и ниво да искате да постигнете, обмислете да вземете уроци в местното училище или колеж. Не се плашете от термини като „Компютърни науки“. Всеки клас, който приемате, който не изисква първоначални изисквания или изисквания, ще се фокусира върху преподаването на основите на програмирането, но въпреки това се консултирайте с вашия инструктор или ментор преди това Уверете се, че това е, което търсите, тъй като класове като „Компютърни умения“ могат да се фокусират повече върху свикването с офис приложения или нещо подобно.