Istnieją dwa rodzaje inżynierów oprogramowania: ci, którzy rozumieją informatykę na tyle dobrze, aby wykonywać ambitną i innowacyjną pracę oraz ci, którzy po prostu dają sobie radę, ponieważ znają niektóre zaawansowane narzędzia. Obaj nazywają siebie inżynierami oprogramowania i obaj zarabiają podobne pensje na początku swojej kariery.
Ale Inżynierowie typu 1sZ czasem stają się bardziej satysfakcjonującą i lepiej płatną pracą. Niezależnie od tego, czy chodzi o wartościową pracę komercyjną, innowacyjne projekty typu open source, przywództwo techniczne, czy indywidualny wkład wysokiej jakości, wszystko, co chcesz wiedzieć o komputerach, można znaleźć w Internecie, więc posiadanie połączenia z Internetem stało się niezbędne.
Programowanie
Większość programów licencjackich CS zaczyna się od a „wprowadzanie” do programowania komputerów. Najlepsze wersje tych kursów są przeznaczone nie tylko dla początkujących, ale także dla tych, którzy podczas nauki kodowania ominęli przydatne koncepcje i modele programistyczne.
Architektura komputerowa
Architektura komputera, czasami nazywana „systemami komputerowymi” lub „organizacją komputera”, jest ważnym pierwszym spojrzeniem na przetwarzanie danych pod powierzchnią oprogramowania. Z naszego doświadczenia wynika, że jest to najbardziej zaniedbany obszar wśród samouków inżynierów oprogramowania.
Algorytmy i struktury danych
Zgadzamy się z powszechnym od dziesięcioleci przekonaniem, że znajomość algorytmów i wspólnych struktur danych jest jednym z najbardziej wzmacniających aspektów edukacji informatycznej.
Jest to również świetne miejsce do trenowania ogólnych umiejętności rozwiązywania problemów.które zostaną nagrodzone w każdym innym obszarze studiów.
Matematyka dla informatyki
Najbardziej odpowiedni obszar matematyki dla CS jest ogólnie nazywany „matematyką dyskretną”, gdzie „dyskretny” jest przeciwieństwem „ciągłego” i jest zbiorem interesujących tematów z matematyki stosowanej poza rachunkiem różniczkowym. Biorąc pod uwagę niejasną definicję, nie ma sensu próbować objąć pełnego zakresu „Matematyka dyskretna”. Bardziej realistycznym celem jest zbudowanie praktycznego zrozumienia logiki.
Kombinatoryka i prawdopodobieństwo, teoria mnogości, teoria grafów i trochę teorii liczb, która wpływa na kryptografię. The algebra liniowa jest wartościowym obszarem dalszych badań, biorąc pod uwagę jego znaczenie w grafice komputerowej i uczeniu maszynowym.
System operacyjny
Świetny sposób na utrwalenie zrozumienia system operacyjny jest odczytanie kodu małego jądra i dodanie funkcji.
Świetną opcją jest xv6, port Uniksa V6 do ANSI C i x86 utrzymywany na kursie w MIT. OSTEP ma dodatek z potencjalnymi laboratoriami xv6, pełnymi świetnych pomysłów na potencjalne projekty.
Sieć komputerowa
Badanie sieci przynosi więcej korzyści z projektów niż z małych ćwiczeń. Niektóre możliwe projekty to: serwer HTTP. Aplikacja czatu oparta na protokole UDP, ministos TCP, serwer proxy lub moduł równoważenia obciążenia oraz rozproszona tablica skrótów.
Bazy danych
Trudno jest skonsolidować teorię baz danych bez pisania dużej ilości kodu. Studenci CS 186 dodają funkcje do Sparka, co jest rozsądnym projektem, ale sugerujemy po prostu napisanie systemu zarządzania relacyjną bazą danych proste od podstaw.
Oczywiście nie będzie to bogate w funkcje, ale nawet napisanie najbardziej podstawowej wersji każdego aspektu aplikacji RDBMS typowe będzie pouczające. Zostań z nami, a pokażemy Ci krok po kroku, jak otwierać, przeglądać lub edytować pliki bazy danych .db
Języki i kompilatory
Większość programistów uczy się języków, podczas gdy większość informatyków uczy się języków. Daje to informatykowi jasność przewaga nad programistąnawet w dziedzinie programowania ich wiedza jest uogólniona.
Zrozumienie, jak działa nowy język głębszy sposób i szybciej niż ci, którzy po prostu nauczyli się określonych języków.
Niezależnie od tego, czy programista uczy się z czasem, czy inżynier systemowy uczęszcza na jego zajęcia, każdy z nich tak ma trudności i korzyści, które należą tylko do jej oddziałów. Dlatego uczenie się, posługiwanie się komputerem i korzystanie z niego to nauka, z którą niewielu sobie radzi.
Interesujące jest bycie poinformowanym, czy kiedykolwiek zadałeś sobie następujące pytanie: Jak wyglądałby świat bez technologii, Internetu, telefonów komórkowych lub komputerów? Czy moglibyśmy żyć bez Internetu? Nauczysz się także korzystać z programów takich jak Microsoft Office