Zostanie programistą to kumulacyjny proces, który rozwija Twoje umiejętności dzień po dniu i rok po roku, a programowanie może być zabawne i satysfakcjonujące (psychicznie, duchowo i finansowo). Ten przewodnik nie obiecuje magicznie łatwego sposobu na zostanie programistą, a kolejność kroków nie jest święta, ale otrzymasz ogólny zarys tego, jak zostać programistą w jednej z nowoczesnych dziedzin programowania.
Kroki
Krok 1. Weź udział w kursie wprowadzającym w jednej (lub wszystkich) z następujących dyscyplin:
- Logika
- Matematyka dyskretna
- Język programowania (weź udział w różnych paradygmatach programowania, zaczynając od sekwencyjnego/proceduralnego do zorientowanego obiektowo, po programowanie funkcjonalne i logiczne. Preferowany Ruby/Python/Pascal dla początkujących i po dobrym zrozumieniu zagłębiaj się w C++/C#/Java)
WSKAZÓWKA EKSPERTA
Gene Linetsky, MS
Startup Founder & Engineering Director Gene Linetsky is a startup founder and software engineer in the San Francisco Bay Area. He has worked in the tech industry for over 30 years and is currently the Director of Engineering at Poynt, a technology company building smart Point-of-Sale terminals for businesses.
Gene Linetsky, MS
Założyciel startupów i dyrektor techniczny
Nie myśl, że musisz zdobyć dyplom z kodowania.
Chociaż udział w kursach języka programowania może być pomocny, Gene Linetsky, inżynier oprogramowania i założyciel startupu, mówi:"
Krok 2. Naucz się pojęć dotyczących baz danych, takich jak tabele, widoki/zapytania i procedury
W tym celu możesz użyć dowolnego prostego pakietu bazy danych, takiego jak:
- Dostęp do MS
- DB V
- Fox Pro
- Paradoks
- MySQL to dobra baza danych do nauki, ponieważ jest bezpłatna, powszechnie używana, a bazy danych są często dostępne za pomocą zapytań SQL
Krok 3. Zdecyduj, jakim typem programisty chcesz zostać
Programiści zazwyczaj należą do jednej z następujących kategorii:
- programista internetowy
-
Programista aplikacji komputerowych
- Programista zorientowany na system operacyjny (OS) (powiązany z pojedynczym systemem operacyjnym lub zestawem systemów operacyjnych)
- Programista niezależny od platformy
- Programista aplikacji rozproszonych
- Biblioteka/platforma/framework/rdzeń programista
-
Programista systemowy
- Programista jądra
- Programista sterowników
- Programista kompilatora
- Naukowiec programowania
Krok 4. Poznaj technologie i języki programowania związane z wybraną dziedziną programowania
W poniższych sekcjach opisano zadania dla różnych typów programowania.
Metoda 1 z 6: Programowanie internetowe
Krok 1. Dowiedz się, z czym wiąże się programowanie WWW
Aplikacje internetowe to komponenty oprogramowania zaprojektowane do pracy w oparciu o architekturę internetową. Oznacza to, że dostęp do aplikacji uzyskuje się za pośrednictwem przeglądarki internetowej, takiej jak Firefox lub Internet Explorer. Opieranie się na architekturze internetowej niekoniecznie wymaga aktywnego połączenia z Internetem. Oznacza to, że aplikacje internetowe są zbudowane na bazie standardowych technologii internetowych, takich jak:
- HTTP
- FTP
- POP3
- SMTP
- TCP
- Protokoły IP
- HTML
- XML
- Zimna fuzja
- ŻMIJA
- JSP
- PHP
- ASP. NET
Krok 2. Przeglądaj wiele różnych witryn, aby dowiedzieć się, jak zwykle wyglądają
(Kliknij prawym przyciskiem myszy, a następnie kliknij opcję Wyświetl źródło lub naciśnij klawisz F12.) Szukaj różnorodności w typie/treści witryny, a nie ilości odwiedzanych witryn. Ogólnie rzecz biorąc, musisz odwiedzić co najmniej jedną z następujących stron internetowych:
- Witryny obecności korporacyjnej (korporacje komercyjne, korporacje/organizacje non-profit, organizacje rządowe)
- Wyszukiwarki internetowe (wyszukiwarki, metawyszukiwarki, specjalistyczne wyszukiwarki, katalogi)
- Witryny do eksploracji danych
- Witryny osobiste
- Strony informacyjne/encyklopedyczne (wiki, arkusze danych, specyfikacje techniczne i podręczniki zawierające katalogi, blogi i czasopisma, witryny agencji informacyjnych i informacyjnych, żółte strony itp.)
- Serwisy społecznościowe (portale społecznościowe, zakładki, serwisy do robienia notatek)
- Witryny do współpracy (obejmuje to inne kategorie wymienione powyżej, takie jak wiki i blogi)
Krok 3. Naucz się co najmniej jednej techniki/metody burzy mózgów oraz oprogramowania, które służy do wdrożenia tej metody
Na przykład: diagramy burzy mózgów i MS Visio.
Krok 4. Zapoznaj się ze strukturą witryny
Jest to tworzenie koncepcyjnych diagramów internetowych, map witryn i struktur nawigacyjnych.
Krok 5. Weź udział w szybkim kursie projektowania grafiki
Spróbuj nauczyć się co najmniej jednego pakietu oprogramowania do edycji/manipulacji grafiką (opcjonalne, ale zdecydowanie zalecane)
Krok 6. Poznaj podstawy infrastruktury internetowej
Obejmuje to uzyskanie podstawowego pojęcia o:
- Podstawowe protokoły usług internetowych (HTTP, FTP, SMTP i POP3 lub IMAP4)
- Oprogramowanie serwera WWW (najlepiej dla platformy, na której będziesz głównie pracować)
- Oprogramowanie do przeglądania stron internetowych.
- Serwer poczty e-mail i oprogramowanie klienckie
Krok 7. Naucz się języków HTML i CSS
Możesz także pobrać pakiet oprogramowania „To, co widzisz, jest tym, co otrzymujesz (WYSIWYG)” do edycji kodu HTML.
Krok 8. Naucz się technologii związanych z XML i XML, takich jak XSL i XPath (opcjonalne, ale zalecane)
Krok 9. Twórz proste, statyczne strony internetowe, dopóki nie będziesz zaznajomiony z językiem HTML i nie będziesz się z nim obchodził
Krok 10. Naucz się języka skryptowego po stronie klienta
Większość użytkowników uczy się JavaScript. Niektórzy uczą się VBScript, ale nie jest to zgodne z większością przeglądarek.
Krok 11. Zapoznaj się z językiem skryptowym po stronie klienta, którego się nauczyłeś
Spróbuj wykorzystać swój potencjał tylko w tym języku. Przejdź do następnego kroku dopiero po zapoznaniu się przynajmniej z językiem skryptowym po stronie klienta.
Krok 12. Naucz się przynajmniej jednego języka programowania po stronie serwera
Jeśli zdecydujesz się ograniczyć do jednego oprogramowania serwerowego, naucz się jednego z języków programowania obsługiwanych przez to oprogramowanie. Jeśli nie, naucz się co najmniej jednego języka programowania na każdym oprogramowaniu serwera.
Krok 13. Utwórz projekt pilotażowy dla siebie po zakończeniu nauki języka programowania po stronie serwera.
Krok 14. Zdobądź własną stronę internetową i zacznij eksperymentować online na własnej stronie
Metoda 2 z 6: Programowanie aplikacji desktopowych
Krok 1. Dowiedz się, w co się pakujesz z programowaniem aplikacji komputerowych
Większość programistów desktopowych pisze kod dla rozwiązań biznesowych, więc zapoznanie się z biznesem, jego strukturą organizacyjną i finansową będzie dużą oszczędnością czasu.
Krok 2. Poznaj różne architektury sprzętu komputerowego
Przydatny jest kurs wprowadzający z projektowania obwodów cyfrowych, a drugi z architektury komputerowej; jednak niektórzy uważają, że jest to zaawansowany punkt wyjścia, więc przeczytanie dwóch lub trzech artykułów samouczka (takich jak ten i ten) może wystarczyć. Następnie możesz wrócić do tego kroku później, po nauczeniu się pierwszego języka programowania.
Krok 3. Naucz się podstawowego (dziecięcego) języka programowania
Nie wstydź się uczyć się takiego języka tylko dlatego, że jesteś starszy niż nazywano cię „dzieciakiem”. Przykładem tych języków programowania może być Scratch. Te języki programowania mogą ogromnie złagodzić ból w nauce pierwszego języka programowania. Ten krok jest jednak opcjonalny. Można to również zrobić przed poprzednim krokiem.
Krok 4. Uzyskaj wprowadzenie do procedury, zorientowany obiektowo, oraz paradygmaty programowania funkcjonalnego.
Krok 5. Weź udział w kursie wprowadzającym w jednym z proceduralnych języków programowania
Bez względu na to, jaki język wybierzesz później, będzie to wymagało programowania proceduralnego na pewnym poziomie. Ponadto większość programistów twierdzi, że programowanie proceduralne jest najłatwiejsze w użyciu jako punkt wyjścia do ogólnego zrozumienia idei programowania.
Krok 6. Naucz się przynajmniej jednej zaawansowanej techniki modelowania, takiej jak UML lub ORM
Krok 7. Zacznij pisać małe aplikacje konsolowe lub podobne do konsoli
Możesz skorzystać z typowych małych ćwiczeń w książkach z językami programowania. W tym celu wybierz narzędzie do pisania programów w języku programowania, w którym piszesz.
Krok 8. Weź udział w bardziej zaawansowanym kursie w wybranym przez siebie języku programowania
Upewnij się, że dobrze rozumiesz poniższe pojęcia i że możesz je zastosować ze względną łatwością, zanim przejdziesz dalej:
- Wprowadzanie i wysyłanie informacji do użytkowników programu.
- Przepływ logiczny i przepływ wykonywania programów w językach proceduralnych.
- Deklarowanie, przypisywanie i porównywanie zmiennych.
- Rozgałęzione konstrukcje programowania, takie jak if..then..else i select/switch..case.
- Zapętlające się konstrukcje, takie jak while..do, do.while/until, for..next.
- Twoja składnia języka programowania do tworzenia i wywoływania procedur i funkcji.
- Typy danych i manipulowanie nimi.
- Zdefiniowane przez użytkownika typy danych (rekordy/struktury/jednostki) i ich wykorzystanie.
- Jeśli twój język obsługuje przeciążanie funkcji, zrozum to.
- Metody dostępu do pamięci w wybranym języku (wskaźniki, podglądanie itp.)
- Jeśli Twój język obsługuje przeciążanie operatorów, zrozum to.
- Jeśli Twój język obsługuje delegatów/wskaźniki do funkcji, zrozum to.
Krok 9. Zastosuj zaawansowane techniki, których się nauczyłeś
Krok 10. Weź udział w kursie wprowadzającym w co najmniej jeszcze jednym języku programowania w innym paradygmacie programowania
Zaleca się, aby nauczyć się jednego języka programowania z każdego paradygmatu, a większość zaawansowanych programistów to robi, jednak zwykle zaczynasz od jednego, pracujesz przez chwilę, stosując swoją wiedzę i ćwicząc ją, a później poznajesz drugiego, po tym jak już miałeś prawdziwy -życiowe doświadczenie w programowaniu. Wypróbuj jeden z następujących obszarów językowych:
- Paradygmat programowania logicznego.
- Paradygmat programowania funkcjonalnego.
- Paradygmat obiektowy.
Krok 11. Spróbuj porównać dwa języki programowania, których się do tej pory nauczyłeś
Oceń mocne i słabe strony każdego z nich. Zwykle odbywa się to poprzez:
- Pobranie prostych próbek swojej wczesnej pracy w pierwszym języku programowania i przepisanie jej przy użyciu drugiego języka programowania.
- Stwórz nowy projekt i spróbuj go zaimplementować w obu językach. Czasami, w zależności od wyboru projektu i języków, możesz nie być w stanie zaimplementować projektu w jednym z języków!
- Pisanie ściągawek lub zestawień w formie tabeli podsumowań między podobnymi konstrukcjami w obu językach i cechami unikalnymi dla każdego z tych języków.
- Spróbuj znaleźć sposoby na naśladowanie funkcji, które są unikalne dla jednego z dwóch języków używających drugiego języka.
Krok 12. Naucz się koncepcji programowania wizualnego, używając jednego z poznanych języków
Prawie wszystkie języki programowania mają wersje/biblioteki, które obsługują programowanie wizualne i inne obsługujące programowanie konsolowe lub podobne do konsoli. Można to osiągnąć poprzez:
- Zapoznaj się z wprowadzeniem do programowania sterowanego zdarzeniami. Większość programowania wizualnego opiera się na pewnym poziomie na obsłudze zdarzeń i zdarzeń (przy użyciu wybranego języka programowania).
- Wypróbuj jak najwięcej oprogramowania komputerowego i zrozum, co robi oprogramowanie. Większość firm programistycznych oferuje wersje beta swoich produktów, które można wykorzystać do testowania oprogramowania. Bądź na bieżąco z postępami w interfejsie użytkownika.
- Przeczytaj artykuły lub samouczki dotyczące graficznych interfejsów użytkownika.
Krok 13. Zacznij stosować swoją wiedzę w małych projektach oprogramowania, które projektujesz
Spróbuj wykorzystać swoją wiedzę programistyczną w problemach, z którymi borykasz się na co dzień. Na przykład pisz programy, które masowo zmieniają nazwy plików, wizualnie porównują pliki tekstowe, kopiują nazwy plików w katalogu do pamięci/pliku tekstowego i tym podobne. Na początku zachowaj prostotę.
Krok 14. Utwórz wirtualny projekt dyplomowy
Dokończ to do końca, stosując techniki programowania wizualnego, których nauczyłeś się do tej pory.
Krok 15. Poszerz swoją wiedzę na temat struktury/biblioteki/pakietu wizualnego, którego nauczyłeś się wcześniej, biorąc udział w zaawansowanych kursach, zwracając szczególną uwagę na szczegóły i poznając więcej wskazówek i wskazówek dotyczących Twojej struktury z zasobów online
Krok 16. Wyszukaj inne pakiety/biblioteki elementów wizualnych dla swoich języków programowania i naucz się ich
Krok 17. Weź udział w kursie grafiki (nie projektowania grafiki)
Będzie to bardzo pomocne dla programistów, którzy chcą pisać atrakcyjne elementy interfejsu użytkownika.
Krok 18. Rozważ zostanie programistą gier (opcjonalnie)
Programowanie gier jest w większości uważane za programowanie desktopowe. Jeśli zamierzasz zostać programistą gier, będziesz musiał dowiedzieć się więcej o programowaniu gier po wykonaniu tych kroków. Kurs graficzny jest obowiązkowy dla programistów gier, a drugim wybranym językiem w poprzednich krokach powinien być język programowania logicznego/funkcjonalnego (najlepiej Prolog lub Lisp).
Metoda 3 z 6: Programowanie aplikacji rozproszonych
Krok 1. Zajmij się programowaniem aplikacji rozproszonych
Programowanie aplikacji rozproszonych jest uważane przez wielu za jedno z najtrudniejszych do nauczenia i wymaga zróżnicowanej wiedzy z zakresu technologii komputerowych i komunikacyjnych.
Krok 2. Zapoznaj się z szybkim wprowadzeniem do systemów telefonicznych i ich sprzętu
Ten krok jest opcjonalny. Jest jednak bardzo przydatny w zrozumieniu topologii sieci.
Krok 3. Zapoznaj się z architekturą sprzętu sieciowego i urządzeniami, takimi jak koncentratory, przełączniki i routery
Krok 4. Weź udział w kursie protokołów sieciowych i podstaw
Zanim zaczniesz programować aplikacje rozproszone, musisz dobrze zrozumieć model Open Systems Interconnection (OSI), Ethernet, IP, TCP, UDP i
Krok 5. Naucz się języka XML i zapoznaj się z nim
Krok 6. Zacznij od nauki języka skryptowego powłoki
W przypadku programowania opartego na systemie Windows byłby to dowolny skrypt, który działa z hostem skryptów systemu Windows. Do programowania opartego na Linuksie wystarczą skrypty Bash i Perl. JavaScript jest zdecydowanie zalecany do tego na obu platformach z następujących powodów:
- Jest obsługiwany przez prawie każdy host skryptów w dowolnym systemie operacyjnym (host skryptów Windows domyślnie obsługuje JavaScript, większość dystrybucji Linuksa ma pakiet obsługujący konsolę skryptów JavaScript).
- Wielu programistów uważa, że jest łatwiejszy do nauczenia.
- Ma składnię wywodzącą się z ALGOL, która zapoznaje Cię z wieloma innymi językami programowania, gdy musisz wybrać drugi język programowania (C, C++, C#, Java i J# wszystkie mają składnię wywodzącą się z ALGOL).
- Ucząc się JavaScript, zapoznasz się ze skryptowaniem stron internetowych po stronie klienta, co jest dodatkowym efektem ubocznym!
Krok 7. Na początku zastosuj tylko programowanie proceduralne przy użyciu wybranego języka skryptowego
Później możesz użyć bardziej zaawansowanych technik programowania i paradygmatów zgodnie z językiem skryptowym i tym, co obsługuje. Wszystkie języki skryptowe mają pewne aspekty programowania proceduralnego na pewnym poziomie.
Krok 8. Użyj języka skryptowego, którego się nauczyłeś, do pisania skryptów, które wykonują komunikację między maszynami
Dowiedz się, co jest do tego niezbędne. Wystarczy prosta komunikacja.
Krok 9. Wykonaj transfer do języka skryptów/programowania dla komputerów stacjonarnych
Najlepiej taki, który jest językiem wieloparadygmatycznym, takim jak Python. Zrób proste wprowadzenie do tego drugiego języka. Java jest uważana przez większość programistów za preferowany język z wielu powodów. Jednak C# szybko nabiera tempa w tej dziedzinie. Java i C# są preferowane z następujących powodów:
- Są to języki programowania obiektowego, które chronią programistów w dużych zespołach przed szczegółami implementacji, ponieważ oba obsługują komponenty (jednostki kodu, wstępnie skompilowane, które wykonują określone zadanie i mogą być używane w innych programach).
- Obsługują one programowanie sterowane zdarzeniami, a także programowanie obiektowe i proceduralne na pewnym poziomie.
- Struktura, na której zbudowany jest język, jest dystrybuowana z natury (w przypadku Javy).
- Dostępność wielu gotowych pakietów, które zajmują się obsługą sieci, zarówno jako kod open-source, jak i wbudowane pakiety frameworka; ułatwia to programistom korzystanie z pracy innych.
Krok 10. Skoncentruj się bardziej na podstawowych funkcjach języka, zwłaszcza na tych, które wspierają tworzenie sieci
Zwracaj mniej uwagi na elementy interfejsu użytkownika, takie jak drukowanie, projektowanie i techniki okien oraz elementy interfejsu użytkownika.
Krok 11. Weź udział w kursie dotyczącym projektowania i architektur aplikacji rozproszonych
Można to zrobić za pomocą książek, samouczków online lub kursów akademickich. Jednak zrozumienie architektury aplikacji rozproszonych i jej koncepcji jest konieczne.
Krok 12. Dowiedz się, jak tworzyć obsługiwane komponenty i usługi przy użyciu wybranego języka programowania
Krok 13. Poznaj jedną lub więcej z poniższych technologii
Zaleca się przynajmniej zapoznanie się z nimi wszystkimi. Większość programistów aplikacji rozproszonych nie zatrzymuje się na jednym lub dwóch językach programowania, ale uczy się co najmniej jednego języka programowania w każdym systemie operacyjnym. Dzieje się tak dlatego, że jeśli chcesz, aby Twoja aplikacja była „dystrybuowana”, powinieneś dostarczyć jej wersję przynajmniej dla każdego głównego systemu operacyjnego.
- Architektura wspólnego brokera żądań obiektów (CORBA)
- Prosty protokół dostępu do obiektów (SOAP)
- Asynchroniczny JavaScript i XML (AJAX)
- Model obiektowy komponentu rozproszonego (DCOM)
- . NET Remoting
- Usługi sieciowe XML
Metoda 4 z 6: Biblioteka/platforma/rama/programowanie podstawowe
Krok 1. Dowiedz się, czym jest podstawowe programowanie
Programiści podstawowi to jedynie zaawansowani programiści, którzy przeszli od programowania aplikacji do programowania jednostek kodu, które będą używane przez innych programistów.
Krok 2. Naucz się języka programowania, który obsługuje budowanie komponentów/pakietów wielokrotnego użytku, jeśli jeszcze tego nie zrobiłeś
Krok 3. Weź udział w zaawansowanym kursie UML i ORM
Większość programistów bibliotek używa jednego lub obu z nich.
Krok 4. Weź udział w kursie inżynierii oprogramowania
Krok 5. Poznaj przynajmniej modułowe, oparte na komponentach, zorientowane obiektowo i sterowane zdarzeniami techniki i koncepcje programowania
Im więcej paradygmatów programowania i języków omówisz, tym większy sukces osiągniesz jako programista bibliotek/pakietów.
Krok 6. Dowiedz się więcej o różnych systemach operacyjnych i strukturach programistycznych obsługiwanych przez te systemy operacyjne
Krok 7. Skoncentruj swoje wysiłki edukacyjne na platformach, językach programowania i technologiach niezależnych od platformy
Krok 8. Jeśli języki programowania, których nauczyłeś się do tej pory, mają ANSI/ISO/IEEE/Wersje standardowe W3C, opanuj standardy.
W miarę możliwości staraj się używać standardowego kodu.
Krok 9. Spróbuj naśladować proste, już istniejące biblioteki, zwłaszcza te o otwartym kodzie źródłowym
Jest to przydatne we wczesnej fazie zostania programistą bibliotek/pakietów. Zacznij od prostych pakietów, takich jak konwersja jednostek i pośrednie pakiety obliczeń naukowych. Jeśli jesteś studentem college'u, skorzystaj z kursów innych niż programowanie, próbując zaimplementować ich równania i rdzeń naukowy jako biblioteki.
Krok 10. Wyszukaj i wypróbuj pakiety open-source w swojej dziedzinie programowania
Najpierw pobierz binaria/pliki wykonywalne pakietu. Spróbuj go wykorzystać i znajdź jego mocne i słabe strony. Po wykonaniu tej czynności pobierz źródło i spróbuj dowiedzieć się, jak to zostało zrobione. Spróbuj odtworzyć te biblioteki lub ich części. Najpierw zrób to po obejrzeniu kodu, a później przed wyświetleniem kodu. W późniejszych fazach spróbuj ulepszyć te biblioteki.
Krok 11. Poznaj różne podejścia stosowane do dystrybucji i wdrażania komponentów dla programistów
- Zazwyczaj programiści bibliotek/pakietów mają tendencję do myślenia rekurencyjnego i/lub iteracyjnego o wszystkich problemach, z którymi się spotykają. Spróbuj myśleć o każdym problemie jako o zbiorze mniejszych problemów (sekwencji prostszych zadań) lub jako powtarzającym się procesie ograniczania zakresu problemu do mniejszych zakresów, a następnie nakładania tych zakresów na siebie.
- Programiści bibliotek/pakietów mają tendencję do generalizowania. Oznacza to, że gdy przedstawia się im prosty, konkretny problem, zwykle myślą o bardziej ogólnym problemie i próbują rozwiązać ten ogólny problem, który automatycznie rozwiąże mniejszy.
Metoda 5 z 6: Programowanie systemu
Krok 1. Zrozum, na czym polega programowanie systemu
Programiści systemowi zajmują się nauką programowania, a nie konkretnymi implementacjami. Nie przywiązuj się do określonej platformy.
Krok 2. Postępuj zgodnie z pierwszymi trzema krokami dla programistów aplikacji komputerowych
Krok 3. Weź udział w kursie wprowadzającym z algebry liniowej
Krok 4. Weź udział w kursie rachunku różniczkowego
Krok 5. Weź udział w kursie logiki i/lub matematyki dyskretnej
Krok 6. Zapoznaj się z różnymi gołymi systemami operacyjnymi
Można to zrobić poprzez:
- Pomysł na sposób instalacji systemów operacyjnych.
- Nauka instalacji różnych systemów operacyjnych na jednym komputerze (opcjonalna, ale zalecana).
- Instalowanie więcej niż jednego systemu operacyjnego. Nie instaluj żadnych pakietów pomocniczych w systemach; zamiast tego użyj samych funkcji zapewnianych przez systemy operacyjne.
Krok 7. Weź udział w kursie (lub alternatywnie przeczytaj książki) na temat architektury sprzętu komputerowego
Krok 8. Rozwiń zrozumienie różnych platform sprzętowych komputera
Krok 9. Zapoznaj się z językiem asemblera wybranej platformy sprzętowej/systemu operacyjnego
Później nauczysz się montażu innych platform/systemów.
Krok 10. Poznaj języki ANSI C i C++ wraz z koncepcjami programowania proceduralnego
Krok 11. Zrozum i przećwicz standardowe biblioteki C/C++ na wybranej platformie
Zwróć szczególną uwagę na Standardową Bibliotekę Szablonów (STL) i być może Aktywną Bibliotekę Szablonów (ATL).
Krok 12. Przeszukaj zasoby, książki i kursy online, aby zrozumieć smak C Twojej konkretnej platformy
Krok 13. Poćwicz tworzenie zaawansowanego kodu w C i C++
Krok 14. Naucz się bardziej zaawansowanego montażu
Krok 15. Weź udział w kursie projektowania systemów operacyjnych
Krok 16. Znajdź i przeczytaj dokumentację wybranej platformy
Będzie to łatwiejsze, jeśli wybierzesz system operacyjny oparty na Uniksie. Bardzo dobrze zrozum system, z którym będziesz pracować później.
Krok 17. Ćwicz zdobytą wiedzę
Najpierw utwórz małe narzędzia systemowe. Zwykle przydaje się:
- Próbujesz odtworzyć małe narzędzia, które już są w twoim systemie.
- Próbuję przenieść narzędzia dostępne w innych systemach operacyjnych na twoje.
Krok 18. Ucz się języków w najbardziej przydatnej kolejności
To jedyne miejsce, w którym liczy się pierwszy język programowania. Najpierw naucz się ANSI C, nie C++, nie C#, nie Javy i nie D. Następnie naucz się C++.
-
Ograniczenie pierwszego języka do samych C i C jest spowodowane tym, że programowanie systemowe wymaga od programisty znajomości następujących pojęć:
- Prawdziwa i pełna kompilacja kodu źródłowego.
- Pliki wyjściowe obiektów niskiego poziomu.
- Łączenie plików binarnych.
- Programowanie w języku maszynowym/montażu niskiego poziomu. Mówi się, że język C jest dla niektórych ukrytym/łatwiejszym do nauczenia się asemblera. Obsługuje również wstawianie kodu języka asemblerowego w kodzie, kiedy tylko zechcesz i jest to tylko procedura (jak asembler).
Metoda 6 z 6: Nauka programowania
Krok 1. Dowiedz się, czym zajmuje się programista
Programiści to bardzo zaawansowani programiści, którzy zamiast pracować nad tworzeniem aplikacji, pracują nad rozwojem technologii obliczeniowych, takich jak szyfrowanie, języki programowania i algorytmy eksploracji danych. Ten poziom rzadko osiąga się bez studiów akademickich i poświęcenia.
Krok 2. Zgromadź wiedzę naukową odpowiadającą czteroletniemu dyplomowi z informatyki
Można to zrobić poprzez:
- Zdobycie faktycznego stopnia naukowego (co zwykle się dzieje).
- Uzyskiwanie konspektów kursów dla takiego stopnia z jednej z nowoczesnych uczelni i uczęszczanie na kursy w formie samokształcenia lub jako oddzielne kursy. Można to osiągnąć teoretycznie, ale zalecana ścieżka jest pierwsza.
Krok 3. Wybierz dziedzinę specjalizacji
Im bardziej konkretnie, tym lepiej. To zależy od twoich preferencji. Poniżej znajduje się jednak lista niektórych głównych tematów związanych z programowaniem komputerowym:
- Projektowanie algorytmów (wyszukiwanie, sortowanie, szyfrowanie, deszyfrowanie i wykrywanie błędów w komunikacji to tylko niektóre przykłady)
- Języki programowania/projektowanie/optymalizacja kompilatora
- Pola sztucznej inteligencji (rozpoznawanie wzorców, rozpoznawanie mowy, przetwarzanie języka naturalnego, sieci neuronowe)
- Robotyka
- Programowanie naukowe
- Superkomputery
- Komputerowe wspomaganie projektowania/modelowania (CAD/CAM)
- Wirtualna rzeczywistość
- Grafika komputerowa (Grafika komputerowa jest zwykle mylnie mylona z projektowaniem graficznym lub projektowaniem graficznego interfejsu użytkownika. Grafika komputerowa to dziedzina nauki, jak przedstawiać i manipulować grafiką w systemach komputerowych.)
Krok 4. Rozważ uzyskanie wyższego stopnia naukowego
Możesz chcieć kontynuować studia magisterskie lub doktoranckie.