Jak zostać świetnym informatykiem

Żeby odpowiedzieć sobie na pytanie, jak zostać świetnym informatykiem, trzeba przede wszystkim wiedzieć, co to za jeden - ten informatyk?

Jestem informatykiem - fachowcem od inżynierii oprogramowania, a także programistą. Dlatego spotykam się często z rozmaitymi fantastycznymi oczekiwaniami: że znam się na różnych grach komputerowych, że umiem zdiagnozować problem z siecią domową albo że zainstaluję nową kartę graficzną.

On zna się na komputerach - niech naprawi telewizor?

Gdyby podobne oczekiwania ludzie mieli wobec - dajmy na to - architektów - to projektant wieżowców musiałby w każdej chwili spodziewać się żądania, żeby naprawił kran w łazience albo fachowo pomalował przedpokój. To samo pomieszanie pojęć panuje, niestety, w przemyśle IT. Nagminnie mylone są ze sobą zawody informatyka, programisty, technika-instalatora, inżyniera oprogramowania, projektanta systemów, testera. To tak, jakby mieszać kompetencje sprzedawcy samochodów z umiejętnościami budowniczego, który zbudował sklep z samochodami.

Student pragnący znaleźć pracę i karierę w tym, co zwykle nazywa się branżą IT, stoi przed trudnym zadaniem nie tylko dlatego, że musi nauczyć się niełatwych rzeczy, lecz przede wszystkim dlatego, że wyzwaniem będzie sprostać niejasnym, chaotycznym, sprzecznym wewnętrznie oczekiwaniom samego przemysłu IT.

Dlatego aby sobie z tym poradzić, warto mieć nie tylko wiedzę techniczną, którą - w zasadzie - daje uczelnia, lecz także orientować się, czym właściwie są projekty IT, w których przyjdzie nam wykonywać pracę.

Co robi się w projektach IT?

Laik spoza branży IT wyobraża sobie projekt informatyczny jako gromadę niestarannie ubranych programistów, mnóstwo zaawansowanych komputerów i innej dziwnej elektroniki. Z czego naprawdę składa się projekt IT?

Teraz porównajmy ilustrację z fragmentem autentycznej oferty pracy: "Osoba z wyższym wykształceniem oraz minimum 4-letnim doświadczeniem w zakresie programowania aplikacji w .NET oraz SQL 2005/2008 na platformach Windows 2008, posiadająca następujące certyfikaty: Microsoft Certified Professional Developer, Web Developer 4, Microsoft Certified Technology Specialist, […] Microsoft Certified Systems Administrator lub Microsoft Certified IT Professional Server Administrator […]". Ogłoszenie nadzwyczaj szczegółowo określa umiejętności techniczne dotyczące ledwo fragmentu małego prostokąta na ilustracji: "Realizacja techniczna". Wnioski?

Pracodawcy nie doliczyli się jeszcze, że do wielu zadań zatrudnienie kogoś, mającego wprawdzie detaliczne umiejętności techniczne, ale pozbawionego ogólnej wiedzy z inżynierii oprogramowania opłaca się - ale tylko na kilka tygodni. Potem dobry fachowiec z wiedzą ogólną nauczy się, czego trzeba, i wyprzedzi tego, kto akurat ma jakiś tam techniczny certyfikat, ale nie umie patrzeć szerzej. Z drugiej strony, po co wymagają od człowieka z certyfikatem ".NET Framework 4" wyższego wykształcenia? Czy do obsługi młotka potrzebny jest tytuł magistra?

Gdyby w prasie fachowej podobne ogłoszenia stanowiły mniejszość, nie więcej niż 10%, a dominowałyby poszukiwania inżynierów oprogramowania, byłoby ok. Jest jednak odwrotnie, co świadczy o tym, że biznes IT nie wie jeszcze, czego naprawdę potrzebuje.

Wnioski dla studenta, szukającego pracy i drogi kariery?

Tylko ten, kto chce zostać naukowcem lub wynalazcą, pisać kompilatory, projektować nowe systemy operacyjne, tworzyć nowe języki, optymalizować matematycznie trudne algorytmy - niech stara się zostać informatykiem. To można świetnie zrealizować na informatyce na wydziałach matematyki.

Pozostali - ponad 95% studiujących - niech starają się zostać fachowcami IT, na których jest ogromne zapotrzebowanie. Z tym będzie na wydziale matematyki trudniej.

Co powinni umieć fachowcy IT?

Tak naprawdę potrzebne są im dwa rodzaje umiejętności: te czysto techniczne oraz szersze, obejmujące jak największy zakres inżynierii oprogramowania. Z punktu widzenia potrzeb przemysłu IT, to są odmienne rodzaje wiedzy, inne umiejętności, tak jak w budownictwie potrzebni są architekci, projektanci, inżynierowie różnych kategorii, technicy, robotnicy. Technicy IT nie potrzebują wyższych studiów - to przesąd z czasów, kiedy informatyka nie była jeszcze masowym przemysłem IT. Na razie jednak pracodawcy tego nie wiedzą - i dlatego studenci muszą pozyskiwać te detaliczne, modne w danej chwili certyfikaty, łapać popularne technologie, bo inaczej nie dostaną pierwszej ani nawet drugiej pracy. Zresztą, to jest też przydatne, aby naprawdę dobrze zrozumieć inżynierię oprogramowania.

Z drugiej strony, za kilka lat te umiejętności, do których studia nie są konieczne, będą masowo zdobywać absolwenci szkół policealnych.

Żeby nie dać się wtedy wyprzeć z rynku pracy osobom po rocznych czy dwuletnich kursach policealnych, studenci muszą wiedzieć więcej, poznając inżynierię oprogramowania. Niestety, nadal wiele kierunków studiów zbyt koncentruje się na szczegółach technicznych. Aby na to zaradzić, trzeba inżynierię oprogramowania poznawać gdzie indziej - samemu, na szkoleniach komercyjnych lub na studiach podyplomowych.