Jedną z rzeczy, o których nikt nie wspominał, jest to, że problemy, które masz rozwiązywać w szkole, zostały celowo stępione, aby ułatwić zrozumienie, w jaki sposób używasz konkretnej techniki, której się uczysz. Zazwyczaj wiesz, jaką technikę zastosować do tego konkretnego problemu, ponieważ jest to ta, którą właśnie omówiłeś na zajęciach. Projekty całego semestru są trochę lepsze, ale nadal mają ograniczony zakres i złożoność w porównaniu do realnego świata.
Rzeczywiste projekty są chaotyczne i ewoluują przez lata (nasze oprogramowanie ma ponad dziesięć lat i ciągle się zmienia od tego czasu) i jest dotykane przez wiele różnych osób o różnych poziomach umiejętności. Być może nadal dotykasz 10-letniej wersji bazy danych i nie możesz w ogóle korzystać z nowszych technik SQL. Być może używasz narzędzia, które było świetne 8 lat temu, ale którego nie nauczyłeś się w szkole, ponieważ zostało ono zastąpione przez coś innego. Ale firma nie chce płacić za wiele miesięcy prac rozwojowych, aby całkowicie go zastąpić.
Utkniesz w świecie, w którym czas na rozwój jest poważnie ograniczony przez to, za co klient zapłaci i jakie są, czasem (OK zwykle) sztuczne terminy.
Możesz być zmuszony do korzystania z narzędzi, o które specjalnie poprosił klient. Możesz mieć niejasne wymagania lub te, które nie mają większego sensu. Być może masz do czynienia z bardzo złożoną domeną biznesową, o której nic nie wiesz, a zatem nie możesz nawet ocenić, czy wymagania mają sens.
Rzeczywiste problemy świata nie są w żaden sposób porównywalne z ładnymi, czystymi problemami, które dają ci w szkole. Jeśli przez większość pierwszego roku nie będziesz zdezorientowany i czujesz się nie na miejscu, martwię się o ciebie.