ProgrammerOto lista cech, które powinien posiadać dobry programista, według mnie. Ostatnio zastanawiałem się jakie cechy powinien mieć ? albo jakie już mam, które sprawiają , że jestem dobry w programowaniu.
Pierwszy punkt przyszedł z łatwością. W sumie programowanie polega na rozwiązywaniu problemów ,ale co dalej?. Jakie inne cechy powinien posiadać programista z punktu widzenia programisty?.

Programista to :

  • Człowiek, który rozwiązuje problemy.
  • Człowiek, który posiada pasję do programowania .
  • Człowiek, który kocha się uczyć dla samej nauki.
  • Człowiek, który rozumie cudzy kod i pisze czytelny kod.
  • Człowiek, który wie, kiedy ma odpoczywać , a kiedy się napędzać.
  • Człowiek, który jest zbyt leniwy na skomplikowane rozwiązania.
  • Człowiek, który ma dobre umiejętności komunikacyjne.
  • Człowiek, który jest ekstremalnym optymistą.
  • Człowiek, który jest ekstremalnym pesymistą.
  • A man who speaks English
  • Człowiek, który ma zdolności matematyczne.
  • Człowiek, który posiada bogatą wyobraźnię.

Oto ich opis.

  • Człowiek, który rozwiązuje problemy – Już przy pierwszych krokach w programowaniu każdy rozumie , że programowanie w 95% polega na szukaniu rozwiązań. W przypadku błędów i braków w danym frameworku znajdowania alternatywnych rozwiązań. Problemy zawsze są , a pierwsze rozwiązania nie zawsze będą skuteczne. Dlatego to tego punktu wypadałoby dodać cierpliwość, jak i umiejętność radzenia sobie z irytacją. W końcu nic tak człowieka nie cieszy, jak rozwiązanie danego problemu , zwłaszcza że radość jest wprost proporcjonalna do skali problemu.Uśmiech ProblemSolvingCycle
  • Człowiek, który posiada pasję do programowania – Na jakimś poziomie człowiek musi kochać programowanie i to co robi nawet dla samego programowania. Człowiek może być wspaniały w czymkolwiek, jeśli to kocha.
  • Człowiek, który kocha się uczyć dla samej nauki – Dziedzina programowania nie jest statyczna i nigdy nie będzie. Co chwila pojawiają się jakieś aktualizacje i nowe rozwiązania. Zgodnie z "jakimiś" badaniami wiedza z programowania co 2 lata wymaga dużej aktualizacji. Człowiek daleko nie zajdzie, jeśli nie kocha się uczyć i ciągle się ulepszać, doskonalić. Programowanie to niekończąca się opowieść.
  • Człowiek, który rozumie cudzy kod i pisze czytelny kod – Kolejna cecha, która jest esencją programowania. Jeśli jest jakaś różnica pomiędzy dobrym  a doskonałym programistą to na pewno wynika ona z tej właśnie cechy.Wcześniej, czy później każdy programista będzie musiał pracować przy cudzym kodzie w egzystujących projektach i nauczyć się technik w nim zastosowanych. Oczywiście dobry programista nie tylko rozumie cudzy kod , ale też właśnie umie zrozumiały kod napisać. Wynikałoby z tego , że do tego punktu zalicza się też znajomość wzorców projektowych.code_250x251
  • Człowiek, który wie, kiedy ma odpoczywać , a kiedy się napędzać – Praca programisty można by powiedzieć, że jak prawie każda inna składa się z natłoku zajęć, jak i z okresów względnego spokoju, kiedy można sobie odpoczywać. Trzeba być przygotowanym na takie skrajności i wykorzystać każdą chwile w odpowiedni sposób, Aby człowiek nigdy nie poczuł się wypalony.
  • Człowiek, który jest zbyt leniwy na skomplikowane rozwiązania – Programiści, aby ułatwić sobie życie i “teoretycznie ” aby skrócić sobie czas, najpierw myślą nad najprostszymi rozwiązaniami pomijając te trudne. Po kilku dniach programowania ma już się to we krwi. To wychodzi nawet w projektach szkolnych.solving-a-problem-with-solution-button-on-computer
  • Człowiek, który ma dobre umiejętności komunikacyjne – Większość programistów jest introwertykami, jednak wcale to nie znaczy, że nie potrafią komunikować się z innymi. W tej branży wyrażanie swoich myśli i pomysłów w odpowiedni sposób, też jest warte złota. Programista zrozumie problem i nie obawia się zaprezentowania swojego rozwiązania w grupie.
  • Człowiek, który jest ekstremalnym optymistą – Coś trzeba zrobić w tydzień…Już kiedyś takie coś zrobiłem, więc myślę, że to da się zrobić.Optimist1
  • Człowiek, który jest ekstremalnym pesymistą – Jeśli program po dodaniu nowej metody nie został sprawdzony to na pewno coś się w nim sypie. Trzeba to sprawdzić.
  • A Man who speaks English – Mój przyjaciel miał mało zajęć z języka angielskiego i ma problemy ze zrozumieniem dokumentacji, albo czas na jej czytanie jest specjalnie wydłużony z powodu bajery językowej. Firmy wykonują projekty najczęściej dla klientów z zagranicy, więc nawet zdolności komunikacyjne w językach obcych są mile widziane. A wyjazd za granicę w tej branży też jest miłym doświadczeniem.
  • Człowiek, który ma zdolności matematyczne – W zależności od języka programowania i platformy trzeba mieć różne zdolności matematyczne. Jeśli chodzi o programowanie w .NET to prosta algebra i wartości logiczne oraz działania binarne są wystarczające. Jednak dla kogoś, kto programuje w Objective-C na Mac-u na pewno te zdolności są trochę bardziej wymagające.
  • Człowiek, który posiada bogatą wyobraźnię – Większość ludzi wie, jak coś zrobić, ponieważ już to wykonywała w przeszłości , ale niektórzy, przy dobrej wyobraźni mogą zrobić symulację konkretnego rozwiązania i przekonać ludzi , że jest ono warte świeczki. Z doświadczeniem, czy bez niego, ta cecha też istotna.

Inne umiejętności, które dobry programista może mieć , ale nie musi. A raczej, gdyby je ktoś posiadał prawdopodobnie szybko zostałby programistą wiodącym w firmie X.

  • Praca w zespole – samo wyjaśnienie.
  • Możliwość powielania wiedzy z innych platform – do pewnego stopnia programowanie w różnych platformach się różni. Czasami programiści muszą szybko przeskoczyć na inną platformę mając niewiele czasu do dyspozycji.
  • Dobrze zarządza innymi ludźmi, sobą oraz projektami programistycznymi – mile widziany zakres umiejętności wykraczający poza prezentowaną dyscyplinę wiedzy.
  • Jest zorganizowany – dyscyplina, czyli wykonywanie pracy na czas.
  • Pisze działający kod za pierwszym razem – Coś dla prawdziwych talentów programowania. Kiedy człowiek na pewne rozwiązanie od razu umie napisać działający kod, nie zapominając o niczym istotnym.
  • Posiada inne talenty – Nie dziwi mnie fakt , że dodatkowym atutem do pracy w firmie X może być znajomość tureckiego czy arabskiego. Gotowanie obiadów do pracy też może się przydać Pizza . Zarządzanie swoim wartościami energetycznymi dla mózgu .Programowanie prawie jak sport. Po pierwsze zwiększ masę xD *** Umiejętność wyczucia dobrego stylu ubioru i prezencji. Na pewno tutaj można dodać pełną listę umiejętności, które zwiększają szanse na sukces, mimo iż nie mają nic wspólnego z programowanie.
  • Czyta książki programistyczne – Sam robię to cały czas. Ale zakup książki bez jej przeczytania nikogo jeszcze nie uczynił lepszym. Pamiętam, gdy na drugim roku informatyki miałem 2GB ebook-ów do PHP ,ale i tak do niczego mi się nie przydały. Ile musiałbym mieć czasu, by je przeczytać.
  • Posiada poczucie humoru i ma dystans do wszystkiego.

lolcode_wrox

CAN HAS STDIO?, I HAS A VAR & IN UR LOOP


W następnym wpisie o kontrowersyjnej książce. Nie dla programistów tylko dla osób, które programistów zatrudniają. Wydaje się to ciekawe.