Moje wykształcenie to inżynieria elektryczna, a dokładniej DSP. Firma, w której obecnie pracuję, wykonuje wiele różnorodnych projektów, głównie budując sprzęt analogowy. Będąc nieco bliżej komputerów niż wszystkich innych tutaj, często piszę kod zarówno dla urządzeń wbudowanych (co jest w porządku), jak i systemu operacyjnego Windows lub Linux. To ten ostatni jest dla mnie terytorium obce.
Potrafię kodować i znam kilka języków (C / C ++, Java, niektóre VB.NET), ale używałem ich tylko do symulacji algorytmów w przetwarzaniu sygnałów i obrazów, sieciach neuronowych i innych podobnych aplikacjach. Dla mnie programowanie było przede wszystkim narzędziem obliczeniowym. Dostaję jednak coraz więcej projektów, w których muszę pisać właściwe, pełnowartościowe oprogramowanie, i tak naprawdę nie wiem, jak to zrobić, ponieważ nigdy nie musiałem tego robić i nigdy nie byłem wystarczająco zainteresowany. Widziałem wielu inżynierów, którzy do pewnego stopnia zmienili się na programistów z powodu wymagań pracy, a większość z nich nie była świetna w tym, co robili. Jestem pewien, że wiele osób spotkało to samo.
Jeśli miałbym nauczyć się pisać odpowiednie oprogramowanie z dobrym interfejsem użytkownika, dobrą architekturą wewnętrzną i tak dalej, jak to zrobić? Nie mamy w pracy nikogo, kto mógłby mi powiedzieć, co jest dobrą praktyką, a co nie. Biorąc pod uwagę, że potrafię pisać kod w najgłębszym tego słowa znaczeniu, co jeszcze można wiedzieć o pisaniu dobrego oprogramowania i jak się tam dostać na własną rękę?
źródło
Odpowiedzi:
Jest kilka książek, które bardzo ci pomogą. Sugeruję, aby zawsze mieć przy sobie Kod ukończony . Jest to nieocenione odniesienie. W poprzedniej firmie, w której pracowałem, była to również książka, którą rozdawaliśmy każdemu młodszemu programistowi po tym, jak zostałem zatrudniony.
Pragmatic Programmer jest również bardzo przydatnym zasobem i jest dość krótki, ale sugeruję przeczytać go po zakończeniu kodu.
Te książki pomogą Ci zacząć, potem kod, kod, kod i kod więcej ... ale wiedz, kiedy przestać, twoje oprogramowanie nigdy nie będzie idealne.
źródło
Moja firma robi to cały czas ... i doprowadza mnie to do szału.
„Jestem programistą, jak zostać EE?”
Myślę, że odpowiedź jest dość oczywista. To zajmuje dużo czasu i ciężkiej pracy. I oczywiście odpowiednie materiały do nauki. Doświadczenie inżynieryjne pomaga, na mojej uczelni CS i szkoły inżynieryjne były w tym samym budynku z dużym nakładaniem się. Istnieją algorytmy i podstawy matematyczne.
Błąd, który widzę, że popełnia większość nowych graczy, polega na tym, że gryzą o wiele więcej, niż potrafią przeżuć. Materiały do nauki w interfejsie użytkownika, architekturze, kodzie jakości ... to dużo podstaw . Coś, co naprawdę zajmuje lata i często jest wykonywane przez zespoły różnych ekspertów w firmach programistycznych.
Nie mówiąc już, że nie możesz być całkiem przyzwoity, jeśli poświęcisz czas. Po prostu rozpoznaj wielkość materiałów, abyś nie przytłoczył siebie i A. Wyjdź lub B. Zbuduj poważny dług techniczny w swoich aplikacjach, wprowadzając znaczne skróty w procesie uczenia się.
Z tego powodu nie ma „złapać wszystko”, aby stać się niesamowitym twórcą dzięki tej książce. Radzę zacząć od wybrania dobrze ocenianej książki w najczęściej używanym języku, a także uczestniczenia w społeczności Stack, szczególnie w celu recenzji kodu.
Spróbuj Amazon.com, mają dobre recenzje książek.
źródło
Książki : najważniejsze jest czytanie (dobrych) książek w wybranym języku. Po zapoznaniu się z wybranym językiem możesz uzyskać „ Skuteczniejsze X” lub „Najlepsze praktyki Y” i tak dalej. Uważam, że książki kucharskie są bardzo dobre w wypełnianiu luk, które możesz mieć. Sądzę więc, że musisz zdobyć co najmniej trzy książki. Jedno: rób ćwiczenia i kata kodu, aby poprawić zrozumienie języka. Oczywiście potrzebujesz dobrego wzorca xUnit .
Algorytmy są szczególnie ważne i powinieneś wybrać książkę, która je szczegółowo opisuje - ponownie w wybranym języku. Wzory projektowe i anty-wzory są warte poznania we wszystkich językach.
Podsumowując: zajmuje to trochę czasu. Nie spiesz się.
źródło
Wciągasz kodowanie. Tak.
Ale - to nie znaczy, że nie możesz dostarczyć oprogramowania, co sprawia, że ludzie są szczęśliwi;)
Być pokornym. Napisz logikę „biznesową” , której potrzebujesz. Użyj kodu biblioteki do wszystkiego innego. Nie próbuj pisać podstawowych algorytmów (takich jak sortowanie tablic ), nie używaj żadnych „fantazyjnych sztuczek”, trzymaj się drakońskiej konwencji kodu.
Użyj dobrego IDE. Jest to niezbędne, ponieważ pomoże ci sformatować kod i śledzić literówki / proste błędy.
Czytaj książki takie jak „ Code Complete ” i „ Pragmatic Programmer ”, spróbuj zmusić się i uczyć się OOP (jest to proste i pomoże ci utrzymać kod łatwiejszy w utrzymaniu).
Używaj SVN , często zatwierdzaj - abyś mógł cofnąć zmiany (kiedy coś zrujnujesz).
Znajdź kogoś, kto jest prawdziwym programistą , z wykształceniem akademickim, jeśli to możliwe. Będziesz mógł z nim rozmawiać, dzieląc się nowymi problemami i otrzymując pouczające odpowiedzi.
I oczywiście najważniejsze jest, aby nadal kodować, kodować, kodować .
ps: jeśli potrafisz napisać działający kod C ++ i piszesz sieci neuronowe (!) - wtedy twój mózg dobrze nadaje się do programowania;) Powodzenia!
źródło
Tutaj są dobre odpowiedzi.
Duży obrót na twoją korzyść to prosty fakt, który chcesz wiedzieć.
Wiele inżynierii oprogramowania (którą oczywiście powinieneś zachować ze zdrowym sceptycyzmem) polega na tym, jak to zrobić w sposób, którego później nie pożałujesz. Jednym z przykładów jest zastosowanie systemu kontroli wersji kodu źródłowego. Innym jest podział kodu na pliki, aby łatwiej było nad nim pracować fragmentarycznie. Kolejnym jest upieranie się w kwestii porządku - konwencji formatowania kodu i nazewnictwa. Dokładne konwencje nie mają tak wielkiego znaczenia, jak spójność.
W ten sposób, kiedy wrócisz do kodu za rok lub dłużej, nie pomyślisz: „Kto popełnił ten bałagan?” Będziesz mógł znaleźć rzeczy i zmienić je bez nadmiernego ryzyka uszkodzenia. **
Dobrym sposobem na rozpoczęcie jest znalezienie różnych przykładowych programów i ich przeglądanie. Następnie możesz dostosować je do swoich potrzeb.
** Jednym z moich największych problemów jest próba pracy z kodem napisanym przez osoby, które nie uważały, że formatowanie lub nazewnictwo mają znaczenie.
źródło
Podczas gdy istnieje wiele dobrych zasobów na temat tego, jak robić i nie robić rzeczy, w końcu najważniejsze jest zobaczenie dużego kodu i praca z nim oraz przekonanie się, jak łatwe lub skomplikowane jest utrzymanie go dla siebie.
Dobrym sposobem na nauczenie się jest zdobycie doświadczenia w przygotowaniu wstępnego projektu, a następnie przejrzenie kodu i pokazanie przydatnych technik, które są dla niego przydatne. Jeśli więc przypadkiem uda ci się przekonać swoich szefów do zatrudnienia przynajmniej jednego inżyniera oprogramowania z doświadczeniem w prowadzeniu (małych) projektów oprogramowania i projektowaniu oprogramowania do kierowania projektami, myślę, że byłaby to najlepsza opcja.
Jeśli nie możesz zmusić nikogo, by cię wypoczął, istnieje obecnie silny ruch open source. Być może korzystasz z niektórych narzędzi open source w swojej pracy, więc spróbuj je naprawić lub dodaj proste funkcje, których używasz, i przedyskutuj, jak to zrobić z odpowiednią społecznością. Jest to nieprzydatne ćwiczenie praktyczne, aby dowiedzieć się, jak stosować ogólne zasady, które znajdziesz w książkach na temat rzeczywistych problemów praktycznych.
źródło
Jedną rzeczą, którą naprawdę poleciłbym do nauki jakości kodowania i zagadnień związanych z architekturą, byłyby nauki „Wujka Boba” (Robert Martin). Ma kilka filmów o wartości 1 USD, które są ładnie małe, a nawet zbyt kapryśne, a także kilka dobrych książek.
źródło