Jaka ogolna wiedza powinien posiadać programista?

0

Zapoznałem się z takimi rzeczami jak:

  • The Principles of Good Programming
  • Przeczytałem książkę Clean Code
  • Przeczytałem sporo na temat wzorców projektowych.

Niestety nic innego nie przychodzi mi do głowy. Może jakieś algorytmy? Jaką jeszcze wiedzę "tego typu" powinien posiadac programista?

8

Jak już przeczytałeś swoje, to teraz naucz się programować i będzie cacy. :-)

0

Obok tego jest praktyka oczywiscie, wiec spoko. Zastanawia mnie po prostu czy cos jeszcze takiego istnieje.

2

W takim razie SICP.

Edit:
@Fi3rce A tak w ogóle to zerknij tu: http://sijinjoseph.com/programmer-competency-matrix/

0

jest zasadnicza różnica jakościowa pomiędzy zwykłym koderem a programistą... Dobry czarodziej , fantasta jakiś co ma idee, strategie na pewno jest bardziej przydatny niż zwykły koder to jakby zwykłego łopatologa postawić naprzeciw pracownika o ciut poszerzonym horyzoncie

0

Musisz mieć tą świadomość że nie ma takiej rzeczy której nie możesz stworzyć, nic cię nie ogranicza oprócz twojego umysłu. Zacznij myśleć jak komputer dodaj to potrzebuje tego itd. stosuje takie myślenie przy każdym nowym zadaniu z programowania i pozwala mi to szybko rozeznać się z zadaniem. Rozumienie algorytmów bardzo w tym pomaga. Programowanie to nieokreślona przestrzeń w której to ty jesteś bogiem i tworzysz nowe rzeczy. Taka mała motywacja ode mnie do dalszej nauki dodatkowo:)

1
Piotr0396 napisał(a):

Musisz mieć tą świadomość że nie ma takiej rzeczy której nie możesz stworzyć, nic cię nie ogranicza oprócz twojego umysłu.

Nie zgodzę się. Zawsze ograniczeniem jest technologia, użytkownicy ze słabszymi komputerami (w przypadku aplikacji webowych też z niekompatybilnymi przeglądarkami), z trudnością w dostępie do internetu (offline first anyone?), czy chociażby w jakiejś części niepełnosprawni. Rozumiem twoją motywację i dobrze posiadać podejście "can do", ale chłodna kalkulacja też przydaje się, a z doświadczenia wiem, że dużo funkcjonalności, które z początku są przypływem "geniuszu" ostatecznie są temperowane przez wyżej wymienione ograniczenia. Pamiętajmy, że soft piszemy dla kogoś, aby ułatwić mu życie, a nie utrudnić przez jakiś fancy feature. I to stawiałbym jako must have dla programisty - zrozumienie użytkowników i większe otwarcie dla ludzi, którzy używają nasz soft, a nie tylko życie od sprintu do sprintu.

2
Biały Krawiec napisał(a):

Nie zgodzę się.

Nie zgodzę się z tym, że się nie zgadzasz :) To co napisałeś, nie oznacza wcale że czegoś nie da się zrobić, wszystko się da. Po prostu czasami trzeba to zrobić innym sposobem. Zresztą, to że napisałeś jakiś program, nie zawsze oznacza, że ma to iść na produkcje. Czasami tworzy się kod(chociaż raczej w wolnym czasie, po pracy), tylko po to by pokazać że jednak się da :D

A co do tematu: może zainteresuj się też umiejętnościami miękkimi? Komunikacja (w zespole/z klientem), prowadzenie rozmowy kwalifikacyjnej. Zarządzanie czasem własnym, projektem. Prowadzenie prezentacji, szkoleń - niby nie są to ściśle programistyczne tematy, ale prędzej czy później się z nimi spotkasz.

0

Wiem jak ważne są to umiejętności, bo zainteresowałem się nimi długo przed wejściem w programowanie :) Nawiasem mówiąc tego typu umiejętności przydają się w każdej dziedzinie.

3

Abstrahując od twej osoby to na pewno trzeba wspomnieć o ortografii i interpunkcji. Niektórym programistom tej wiedzy niestety brakuje.

2

Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein "Introduction to Algorithms"

Myślę, że pozycja obowiązkowa, ogólno programistyczna.

0

@pioflor, warto wiedzieć, że Cormen istnieje, ale wydaje mi się że jednak większość osób tego w życiu nie potrzebuje. Takie rzeczy to może na konkursach algorymicznych się przydają, a w pracy to co najwyżej internet.

Wg. mnie każdy programista powinien:

  • chociaż trochę liznąć assemblera,
  • napisać chociaż jednego keyloggera lub coś podobnego, żeby ogarnąć chociaż podstawy tego co się dzieje w systemie operacyjnym,
  • dobrze opanować dowolny użyteczny język programowania po to chociażby, żeby potem szukać analogii w innych językach,
  • znać przynajmniej w dobrym stopniu angielski,
  • umieć definiować problem,
  • mając dobrze zdefiniowany problem umieć go zaklepać

1 użytkowników online, w tym zalogowanych: 0, gości: 1