Inżynieria Oprogramowania
Stopień Bachelor of Science w Inżynierii Oprogramowania przygotowuje inżynierów oprogramowania: współpracujących profesjonalistów pracujących w zespole nad opracowaniem produktów oprogramowania na czas, w ramach budżetu i spełniających wymagania klientów. Absolwenci tego programu będą posiadać praktyczną wiedzę i umiejętności zdefiniowanego podejścia inżynieryjnego do analizy, planowania, projektowania i budowy złożonych systemów. Program nauczania opiera się na podstawach informatyki i zasadach matematycznych, aby objąć projektowanie, analizę, weryfikację, walidację, wdrażanie, wdrażanie i utrzymanie systemów oprogramowania.
Często występuje zamieszanie dotyczące różnic między informatyką, inżynierią oprogramowania a IT/IS. Poniższy diagram z Association for Computing Machinery (ACM) dostarcza wglądu w relacje między tymi obszarami.
Inżynierowie elektrycy (EE) są głównie zaangażowani w projektowanie sprzętu, podczas gdy inżynierowie komputerowi (CE) projektują systemy, które obejmują zarówno sprzęt, jak i oprogramowanie. Informatyka (CS) obejmuje koncepcje i technologie związane z tym, jak sprawić, by komputer coś zrobił (grafika, robotyka itp.), a inżynieria oprogramowania (SE) koncentruje się na tym, jak projektować i budować oprogramowanie. Istnieje znaczne pokrycie między informatyką a inżynierią oprogramowania, a ich przecięcie często dotyczy programowania; jednak istnieje kluczowa różnica. Naukowcy komputerowi testują teorie i pracują na granicy nieznanego. Inżynieria oprogramowania jest dyscypliną inżynieryjną. Inżynieria zaczyna się od wiedzy, która została już uznana za wiarygodną i opracowuje rozwiązania dla problemów technicznych, społecznych i komercyjnych. Technologie informacyjne (IT) i usługi informacyjne (IS) koncentrują się na dostarczaniu rozwiązań technologicznych dla organizacji.
Program Inżynierii Oprogramowania w Snow College zapewnia studentom doświadczenie edukacyjne, które opiera się na tradycyjnej informatyce i inżynierii oraz produkuje inżynierów oprogramowania, którzy tworzą wysokiej jakości oprogramowanie w sposób systematyczny, kontrolowany i efektywny. Osiąga się to w następujący sposób:
Stopień kładzie duży nacisk na matematykę i stosowanie metod inżynieryjnych w projektowaniu oprogramowania.
Kursy kładą nacisk na procesy i cykle życia oprogramowania oraz wykorzystują podejście zespołowe do budowania oprogramowania z aktywnym uczeniem się ("uczenie się przez działanie"), co również zapewnia możliwości przywódcze, takie jak role liderów zespołów rozwoju oprogramowania, dla każdego studenta.
Kursy obejmują znaczną naukę w obszarach zarządzania, takich jak planowanie projektów, alokacja zasobów, zapewnienie jakości, testowanie, metryki, utrzymanie i rozwiązywanie problemów, zarządzanie konfiguracją i zarządzanie personelem.
Kursy włączają zespoły studentów do pracy nad działaniami zaprojektowanymi specjalnie w celu prowadzenia studentów do wspólnego konstruowania własnego zrozumienia kluczowych koncepcji, a jednocześnie rozwijania kluczowych umiejętności procesowych, takich jak komunikacja, praca zespołowa, krytyczne myślenie i rozwiązywanie problemów.
Studenci będą mieli możliwość wyboru specjalizacji w:
Przedsiębiorczość: Połączenie myślenia obliczeniowego i przedsiębiorczego w celu identyfikacji, oceny i wdrażania pomysłów, które stworzą nowe rynki i technologie.
- Projektowanie Mediów Cyfrowych: Wykorzystanie zintegrowanych mediów do komunikowania wiadomości za pośrednictwem elektronicznych środków, takich jak Internet, film, telewizja i technologie mobilne.
- Rozwój Stron Internetowych: Wykorzystanie narzędzi, w tym HTML, CSS i JavaScript, do tworzenia i utrzymywania wysokiej jakości, interaktywnych stron internetowych.
Program nauczania inżynierii oprogramowania kończy się rocznym projektem końcowym, w którym studenci pracują w zespołach nad budową systemu oprogramowania odzwierciedlającego aktualne praktyki w branży. Dodatkowo studenci są zachęcani do uczestnictwa w stażach przed i w trakcie zapisów na te kursy końcowe, aby zdobyć bezpośrednie doświadczenie w branży i wgląd przed rozpoczęciem własnych projektów. Snow College będzie współpracować z firmami w celu opracowania tych możliwości nauki, które zapewnią studentom doświadczenie związane z branżą.
Program Inżynierii Oprogramowania w Snow College przygotowuje studentów do natychmiastowego wejścia do zawodu inżyniera oprogramowania lub do kontynuowania dalszych możliwości edukacyjnych. Pierwsze dwa lata programu są również kompatybilne z transferem do instytucji oferującej stopień w informatyce.
Kursy Inżynierii Oprogramowania
- SE 3250 Przegląd Języków
- SE 3410 Czynniki Ludzkie - Projektowanie Oprogramowania
- SE 3450 Zasady i Wzorce Projektowania Oprogramowania
- SE 3520 Systemy Baz Danych
- SE 3620 Rozwój Aplikacji Rozproszonych
- SE 3630 Rozwój Aplikacji Mobilnych
- SE 4120 Zarządzanie Projektem Oprogramowania
- SE 4220 Graficzne Interfejsy Użytkownika
- SE 4320 Osobiste Praktyki Oprogramowania
- SE 4400 Praktyka SE I
Kariera w Inżynierii Oprogramowania
Inżynieria oprogramowania to zastosowanie zasad inżynieryjnych do rozwoju oprogramowania. Naukowcy komputerowi uczą się, co jest prawdą, jak testować hipotezy i jak rozszerzać wiedzę w swojej dziedzinie. Inżynierowie oprogramowania uczą się, co jest prawdą, co jest użyteczne i jak zastosować dobrze zrozumianą wiedzę do rozwiązywania praktycznych problemów.
Ścieżki kariery w Inżynierii Oprogramowania
- Rozwój Aplikacji: Rozwój oprogramowania oparty na rozwiązywaniu problemów, niezwiązany z siecią, który obejmuje języki programowania, takie jak Java i C#.
- Rozwój Systemów: Projektowanie i kodowanie oprogramowania zaplecza stworzonego w celu wsparcia rozwoju aplikacji; obejmuje języki programowania, takie jak C i C++.
- Rozwój Stron Internetowych: Projektowanie oprogramowania lub aplikacji do uruchamiania w przeglądarkach internetowych i używających języków programowania, takich jak HTML, JavaScript i PHP.
- Rozwój Systemów Wbudowanych: Projektowanie systemów komputerowych i oprogramowania do pracy na urządzeniach niekomputerowych, takich jak samochody. Używa języków programowania, takich jak C i języki asemblera.
Zarobki inżynierów oprogramowania
Zgodnie z danymi Biura Statystyki Pracy, typowe wynagrodzenie początkowe wynosi około 70 000 USD, a większość karier w inżynierii oprogramowania płaci od 80 000 do 105 000 USD rocznie. Potencjał zarobkowy różni się w zależności od lokalizacji, doświadczenia, wykształcenia, branży, pracodawcy i certyfikacji.
Umiejętności potrzebne w Inżynierii Oprogramowania
Profesjonaliści w dziedzinie inżynierii oprogramowania są oparte na umiejętnościach, wymagając wysoko wyspecjalizowanego szkolenia w obszarach technicznych i nietechnicznych. Pracodawcy poszukują kandydatów, którzy posiadają połączenie umiejętności technicznych i miękkich. Umiejętności miękkie cenione przez pracodawców obejmują komunikację, organizację, zarządzanie projektami, rozwiązywanie problemów, krytyczne myślenie i podejmowanie decyzji.
Poza umiejętnościami miękkimi, inżynierowie oprogramowania rozwijają również zarówno techniczne, jak i specyficzne dla branży zestawy umiejętności, które są stosowane w każdej karierze w inżynierii komputerowej oraz w konkretnych obszarach praktyki. Przykładowe umiejętności techniczne obejmują języki programowania, sprzęt komputerowy i oprogramowanie oraz architekturę systemów.
Przygotowanie do kariery w Inżynierii Oprogramowania
1) Uzyskaj stopień w inżynierii oprogramowania lub pokrewnej dziedzinie. Większość stanowisk inżyniera oprogramowania wymaga tytułu licencjata. Specjalizacja w inżynierii oprogramowania zapewni najbardziej przydatne podstawy do projektowania i doskonalenia oprogramowania. Aby przygotować się do swojej kariery, oto kilka rzeczy, które możesz zrobić.
2) Rozpocznij programowanie natychmiast. Nawet jeśli nadal jesteś w szkole podstawowej, możesz dać sobie ogromną przewagę, ucząc się programowania. Inżynieria oprogramowania nie koncentruje się wyłącznie na kodowaniu, ale będziesz musiał znać przynajmniej kilka języków oraz głębiej zrozumieć, jak one działają. Nie ma powszechnej zgody co do tego, które języki są najbardziej przydatne, ale oto kilka popularnych wyborów:
3) Ucz się matematyki. Inżynierowie oprogramowania czasami tworzą algorytmy matematyczne, które pozwalają oprogramowaniu działać. Skup się na rozwijaniu i utrzymywaniu swoich umiejętności matematycznych, aby dać z siebie wszystko, gdy już zdobędziesz stanowisko inżyniera oprogramowania.
4) Twórz oprogramowanie. Najlepszym sposobem na poprawę swoich umiejętności jest ich wykorzystanie. Niezależnie od tego, czy są to projekty zawodowe, czy osobiste, projektowanie i kodowanie oprogramowania nauczy cię wiele. Dla wielu pracodawców osiągnięcia praktyczne mają większe znaczenie niż GPA czy wiedza teoretyczna.
5) Szukaj stażu. Wiele studentów inżynierii oprogramowania pracuje jako stażyści podczas ukończenia studiów. Może to być doskonały sposób na zdobycie praktycznego szkolenia i nawiązanie kontaktów z potencjalnymi pracodawcami.
6) Rozważ swoje cele zawodowe. Przemysł oprogramowania ciągle się zmienia. Nieustannie poprawiaj swoją wiedzę i umiejętności praktyczne. Dołącz do organizacji zawodowej, takiej jak ACM lub IEEE, aby uzyskać możliwości nawiązywania kontaktów. Dąż do certyfikacji związanych z twoją dziedziną zainteresowań. Zobacz poziomy Snow, aby znaleźć możliwości rozpoczęcia swojej ścieżki inżynierii oprogramowania.
Dostępne Certyfikaty Zawodowe
Istnieje wiele certyfikatów, które możesz zdobyć, aby wykazać swoje umiejętności w zakresie określonych języków, produktów lub ról zawodowych. Niektóre odzwierciedlają szeroką wiedzę, inne koncentrują się na wąskich umiejętnościach w wyspecjalizowanych obszarach.
Inżynierowie aplikacji z szeroką wiedzą mogą chcieć uzyskać certyfikaty przez Instytut Inżynierów Elektryków i Elektroników (IEEE). Certyfikaty w zakresie rozwoju oprogramowania IEEE Society odzwierciedlają wiedzę w Przewodniku po Wiedzy w Inżynierii Oprogramowania (SWEBOK). Są one uznawane na całym świecie.