Właśnie ukończyłem studia licencjackie w dziedzinie IT. Interesuję się kodowaniem i naprawdę chcę być w tym profesjonalistą. Teraz, oprócz kursów na studiach, sam uczę się programowania (C #) (programowanie na poziomie uczelni jest zbyt podstawowe). Teraz czuję, że potrzebuję trochę więcej czasu, aby być blisko profesjonalnego programisty. Ale niektórzy z moich seniorów twierdzą, że programowanie w świecie korporacyjnym zbyt różni się od programowania książkowego, dlatego nie ma sensu marnować czasu. (Nie są to sami programiści, prawdopodobnie tak właśnie słyszeli).
Czy skorzystałbym na osiągnięciu wcześniejszego poziomu C #? czy ponieważ mierny poziom jest wystarczający do przerwania wywiadów, wyższe poziomy nie mają znaczenia dla firm, ponieważ polegają wyłącznie na szkoleniu, aby uczyć, jak działają rzeczy w świecie korporacyjnym, a uczenie się więcej nie pomoże mi zbytnio? Proszę, jeśli są profesjonalni programiści, którzy mogą pomóc, obiecuję, że jest to coś, o co każdy student zainteresowany programowaniem chce zapytać na moim etapie. „Jak faktycznie zmieniasz się z ucznia na profesjonalistę w dziedzinie programowania?” - kontynuuj naukę, dopóki nie jesteś doskonały lub dołączenie do firmy jest konieczne, gdy już znasz podstawy?
źródło
Odpowiedzi:
Istnieje wiele różnic między programowaniem w szkole a realnym świecie. Nie jestem pewien, czy istnieje coś takiego jak programowanie korporacyjne .
W zależności od tego, gdzie faktycznie pracujesz, będą ogromne różnice. Będą również ogromne różnice w zależności od wykonywanych zadań.
Nadal jednak występują pewne typowe problemy.
cykl życia kodu w świecie rzeczywistym bardzo różni się od pracy domowej na studiach. W programowaniu w świecie rzeczywistym zwykle pracujesz na istniejącej bazie kodu. Jednym z największych problemów jest unikanie łamania zgodności z kodem używanym przez klientów (którzy mogą być klientami wewnętrznymi lub zewnętrznymi, w zależności od rzeczywistego miejsca pracy i przypadku). Kod, który piszesz, będzie prawdopodobnie używany przez wiele lat później (to zależy: problem nie jest taki sam dla strony internetowej lub kodu osadzonego na niektórych urządzeniach). Jeśli chcesz się na to przygotować, nabądź nawyku pisania testów jednostkowych i testów funkcjonalnych dla każdego fragmentu kodu. Nie zawsze dzieje się tak w przypadku kodu z prawdziwego świata, ale powinno to uprościć życie zarówno na studiach, jak iw świecie korporacyjnym.
projekt / wymagania są zwykle znacznie bardziej niewyraźne w prawdziwym świecie niż w kolegialnej atmosferze. Pisząc profesjonalny kod, ktoś musi zdefiniować cel kodu, a ty nie masz po prostu problemów z zabawkami lub nawet dobrze znanych problemów. Jest bardzo prawdopodobne, że prędzej czy później to Ty będziesz projektował! Klienci zwykle nie wiedzą, czego chcą (a nawet gdy wiedzą, czego chcą, może nie być tym, czego potrzebują), a menedżerowie zwykle po prostu opisują duży obraz, pozostawiając programistom wiele szczegółów i możliwości. W zależności od zastosowanych metod („zwinny” -vs- „cykl V” itp.) Wcześniej lub później mogą pojawić się wybory i szczegółowa definicja problemu, ale powinieneś przynajmniej zachować otwarty umysł i zastanawiać się, czy faktycznie robisz to, co robisz jest wymagane. Możesz również rozważyć zmianę wymagań, jeśli trwające zadanie jest zbyt trudne do kodowania lub nieefektywne. Może i tak skończysz pisać coś bezużytecznego lub zbyt skomplikowanego, ponieważ klient lub kierownik nie zrozumiał o co ci chodzi lub się z tobą nie zgadzał. Jednak zawsze powinieneś kwestionować wymagania (jest to umiejętność przetrwania). Pamiętaj również, że wymagania mogą się zmieniać w trakcie wykonywania zadania i powinieneś być na to przygotowany.
na studiach, kiedy dostaniesz zadanie, zwykle powinieneś napisać jakiś kod. W prawdziwym świecie zwykle zaczynasz od sprawdzenia, czy możesz zamiast tego użyć istniejącego kodu: ponownie użyj lub zmień części projektu, użyj lub kup biblioteki itp. Jeśli znajdziesz istniejący kod, który pasuje do zadania, możesz go użyć lub nie (mogą występować problemy z konserwacją, problemy z wydajnością, problemy z prawami autorskimi, a nawet problemy z cenami), ale zwykle należy rozważyć możliwość ponownego wykorzystania istniejącego kodu.
Istnieje oczywiście wiele innych problemów związanych z pracą zespołową, skalą projektu itp. Ale powyższe punkty są problemami, które bardzo prawdopodobne są w środowiskach korporacyjnych, ale nie trzeba ich brać pod uwagę podczas pracy na uczelni.
źródło
Główną różnicą między programowaniem korporacyjnym a programowaniem na studiach jest skala. W szkole nigdy nie dostajesz zadania, którego jedna osoba nie może rozpocząć i zakończyć w ciągu semestru. Jako profesjonalista możesz współpracować z dziesiątkami innych programistów nad oprogramowaniem, które działa przez lata bez „ukończenia”.
Na poziomie mikro praca nie różni się tak bardzo. W końcu, gdyby było inaczej, to studia nie miałyby żadnej wartości dla firm. Ale to trochę jak różnica między pieczeniem 12 ciastek a pieczeniem 12 000 ciastek. Możesz być naprawdę dobry w pierwszym i całkowicie nieświadomy w drugim.
W szkole zajmujesz się głównie tworzeniem właściwego programu. W pracy poprawne oprogramowanie nie wystarczy. Musi być konserwowalny, testowalny, wydajny i nad tym, że może pracować jednocześnie przez wiele osób. To jest coś, czego szkoły próbują uczyć, ale tak naprawdę nie można się tego całkowicie nauczyć, chyba że to się robi.
źródło
To pytanie opiera się na nieprawidłowym założeniu:
Stajesz się profesjonalistą, otrzymując za to wynagrodzenie. Nigdy nie przestajesz być uczniem. Jeśli to zrobisz, Twoja kariera się skończy.
Wyjdź na świat i znajdź pracę. Twój entuzjazm do nauki jest atutem.
źródło
Krótka odpowiedź, tak - świat korporacji jest zupełnie inny niż wiele środowisk akademickich.
To powiedziawszy, firmy o tym wiedzą. Oczekujemy, że absolwenci college'ów będą prawie bezużyteczni. Jeśli spędziłeś czas na nauce programowania, to świetnie. Nie musisz być super niesamowity, aby się o nie ubiegać, ale zrozum, że pozostanie przeciętne nie ograniczy tego.
Sam nie nauczysz się wiele, czego potrzebujesz w biznesie. Złóż wniosek jak najszybciej, kontynuując naukę na własną rękę.
źródło
Nie. Oczekujemy, że studenci będą bezużyteczni przez kilka miesięcy, kiedy ich włamiemy. Stopień to tylko stawka na stole. Twój entuzjazm do nauki i wykonywania instrukcji jest Twoim najlepszym atutem. Podczas przeprowadzania wywiadów z absolwentami szkół wyższych chcę mieć gracza, który nie pasuje do sytuacji krytycznej.
Różni się to dla każdej firmy, ale ogólnie większe firmy będą miały bardziej zorganizowane szkolenie. To twoja pierwsza ważna decyzja. Czy lubisz szkolenia formalne i wysoki poziom struktury? Jeśli tak, szukaj pracy, która to zapewnia.
Zmieniasz się ze studenta na profesjonalistę, zdobywając pracę. Polecam Seniorom nawiązanie współpracy z firmą za pośrednictwem Twojej szkoły. Jest to najlepszy sposób na zmoczenie stóp i pokonanie lęku przed nowym zawodem.
Znajdź pracę, nie czekaj. Często się denerwujesz, ale szczerze mówiąc o swoich umiejętnościach i nie ukrywaj entuzjazmu, aby dowiedzieć się więcej. Często zmienia się firmy kilka razy, szczególnie na początku kariery.
Gratulujemy ukończenia studiów i powodzenia w drodze do profesjonalnego programowania.
źródło
Powiedziałbym, że podstawowa różnica między programowaniem na poziomie korporacyjnym a szkolnym polega na tym, że programowanie na poziomie korporacyjnym jest bardziej procesem opartym na współpracy niż to, co można spotkać w klasie, a nacisk kładzie się bardziej na rozwój produktu niż naukę pedagogiczną.
źródło
Jeśli naprawdę oczekujesz, że programowanie w świecie korporacyjnym będzie zaawansowaną kulturą programowania wysokiego poziomu, myślę, że raczej się rozczarujesz. Programowanie w świecie korporacyjnym polega raczej na tym, aby wziąć odpowiedzialność za napisany kod i zachować go w utrzymaniu.
Ale na twoje pytanie
Nie ma to nic wspólnego z programowaniem na poziomie korporacyjnym i wyższym, ale ogólnie z programowaniem. Jeśli naprawdę chcesz się nauczyć, zacznij tworzyć własne oprogramowanie, coś, co chcesz zbudować lub zacznij pracować w projektach oprogramowania typu open source. Zadawaj pytania, które napotykasz. I czytaj kod innych ludzi.
źródło
Odpowiedź Karla na temat skali jest natychmiastowa. Nie możesz posortować tablicy 15 liczb, musisz posortować zestaw danych składający się z miliona, powiedzmy, numerów kont.
Klasa struktur danych i algorytmów prawdopodobnie poda ci kilkanaście różnych sposobów sortowania. W prawdziwej aplikacji prawdopodobnie rzucisz w kolejności według klauzuli i pozwól, aby baza danych ją zoptymalizowała.
Jeśli chodzi o przygotowanie się do świata korporacyjnego, proponuję dwa sposoby: a) Staż, nawet o niskim wynagrodzeniu lub bez wynagrodzenia, pozwoli Ci obserwować pracę innych. b) Przy wszystkich sklepach z aplikacjami możesz spróbować napisać i opublikować aplikację w sklepach Apple / Google / MS. Pomoże Ci to lepiej zrozumieć przepływy pracy, wartość testowania, potrzebę skonfigurowania odpowiedniego środowiska i narzędzi oraz wiele więcej.
źródło
Najważniejsze, aby dobrze sobie radzić w programowaniu korporacyjnym, jest cierpliwość i umiejętność komunikowania się z użytkownikami, którzy nie rozumieją technologii. Upewnij się, że korzystasz z testów jednostkowych, kontroli wersji, ostrożnie debuguj i stosuj odpowiednie śledzenie / rejestrowanie. Języki mogą się zmieniać, ale zachowanie spokoju i staranne wyszukiwanie problemów zawsze będzie działać.
źródło
oprócz doskonałej odpowiedzi, pod warunkiem, że „programowanie korporacyjne” dotyczy również wymagań, które nie są jasne lub zmieniają się.
Co byś zrobił, gdyby twój profesor zmienił wymagania pracy domowej z programowania na dwa dni przed jej wykonaniem?
W przemyśle jest to dość powszechne.
źródło