Jak mogę sprawdzić swoje postępy jako młodszy programista solo [zamknięte]

38

Obecnie pracuję dla 2-osobowej firmy, jako główny programista solo. Mój szef ma klientów, kpi z szablonów projektów png i przekazuje je mi.

Ten system działa dobrze i bardzo mi się podoba.

Rodzaje projektów, nad którymi pracuję, są skierowane do małych i średnich firm i zwykle potrzebują systemu CMS. Opracowany od podstaw zbuduję niestandardowy backend dla klienta, aby dodawać / edytować / usuwać kategorie, tagi, produkty itp., A następnie wysyłać je do interfejsu użytkownika zgodnie z przekazanym mi szablonem. Z biegiem czasu projekty stały się bardziej złożone, wraz z funkcjami koszyka / zamówień i innymi typowymi funkcjami typu e-commerce.

Znowu ten system działa dobrze i bardzo mi się podoba.

Moim problemem jest mój osobisty rozwój jako programisty. Wolny czas spędzam na czytaniu blogów programistycznych, sprawdzaniu wymiany stosów , czytaniu sugerowanych książek programistycznych (obecnie na „ The Pragmatic Programmer ”, naprawdę dobre jak dotąd), ćwiczeniu mózgu ( problemy z matematyką lumosity.com i khanacademy ), robiąc dużo ćwiczeń fizycznych i innych działań związanych z rozwojem osobistym.

Nie mogę się jednak oprzeć wrażeniu, że brakuje mi opinii, krytyki. Mój szef jest świetny i nigdy nie powstrzymuje się od pochwały za moją pracę, ale niestety jest albo zajęty, aby sprawdzić mój kod, albo szczerze mówiąc, nie sądzę, że jest to jedna z jego specjalności, więc nie mogę wyrazić opinii .

Chcę wiedzieć, co robię źle i co robię dobrze. Czy powinienem umieszczać tyle logiki w kontrolerze, czy wystarczająco moduluję swój kod itp.

Tak więc opracowałem małą aplikację „Budżetowanie rodzinne” i starałem się robić to tak czysto i skutecznie, jak obecnie wiem.

Chcę wiedzieć, czy mogę gdzieś przesłać tę aplikację i poprosić doświadczonych programistów o opinie. Wydaje się, że nie jest to tylko podsekcja mojego kodu, taka jak „codereview.stackexchange”, ale cały mój przepływ pracy, który chcę poddać krytyce.

Wiem, że należy o to zapytać i oczekuję, że główną radą będzie poszukiwanie pracy w zespole, co z pewnością zajrzę później, ale na razie chcę pozostać przy swoim obecnym sytuacja zatrudnienia, ale po prostu nie chcę rozwijać zbyt wielu złych nawyków.

Daj mi znać, czy mogę udzielić dodatkowych informacji, które pomogą wyjaśnić, czy też nie jest to właściwe miejsce na tego rodzaju pytania, z góry przepraszam. Nie chciałem używać reddita, ponieważ czułem, że ta społeczność wspiera bardziej przemyślane odpowiedzi.

hoppipolla
źródło
3
Jako dawniej nie tak dawno młodszy programista uważam, że złym pomysłem jest pozwolić, by młodszy programista tak szalał. Nie wspominając już o makiecie PNG, która nie daje informacji potrzebnych do napisania skutecznego CMS. Ponadto, dlaczego ciągle pisać CMSy, gdy nie ma możliwości samodzielnej konfiguracji, jest to o wiele bardziej skuteczne niż solo programista mógłby napisać w dowolnym rozsądnym czasie dla klienta, w tym mikro CMS.
Przypon
2
Cóż, początkowo miał swój własny CMS, który został zbudowany w Coldfusion. Nauczyłem się języka metodą prób i błędów i zakończyliśmy kilka projektów z jego użyciem. Z czasem jednak przekonałem go, że dobrym pomysłem byłoby przejście na PHP, ponieważ miałem większe doświadczenie w korzystaniu z niego i istnieje większa społeczność, na której można polegać (nie mając przełożonych, polegam na google). Od tego czasu stopniowo buduję modułowy CMS wielokrotnego użytku w ciBonfire. Nadchodzi naprawdę dobrze, system katalogowania jest prawie kompletny. Problem polega na tym, że uczę się na bieżąco, mamy klientów do zadowolenia.
hoppipolla,
2
@OliverHyde „Problem polega na tym, że uczę się na bieżąco, mamy klientów do zadowolenia”. Nigdzie też nie będzie inaczej.

Odpowiedzi:

21

Jesteś na dobrej drodze do doskonalenia swoich umiejętności i zrozumiałe jest, że nie masz pewności co do niezawodności i gotowości kodu dla przedsiębiorstwa.

Jest to normalny proces dla młodszego programisty, a twoje zainteresowanie ulepszeniem jest bardzo ważne, ponieważ jest kluczem do tego, aby pewnego dnia stać się gwiazdą rocka.

Jako odniesienie do nauki najlepszych praktyk polecam dołączenie do projektów open source, które są prowadzone bezpłatnie dla pasjonatów / ciekawskich programistów. Naprawdę pomogą ci zrozumieć, jak korzystać z najlepszych praktyk i decydować o projekcie aplikacji. Ponadto postaraj się zaangażować w opracowywanie projektów typu open source, ponieważ znacznie poprawi to samokształcenie i poprawę.

Poleciłbym także uczestnictwo w lokalnych wydarzeniach dla programistów. Niektóre z tych grup możesz znaleźć na communitymegaphone.com . Rozmawiaj z lokalnymi programistami, to w większości dobrzy ludzie, którzy nie mieliby nic przeciwko pomaganiu współpracownikom.

EL Yusubov
źródło
Hmm, może przyjrzę się dołączeniu do niektórych projektów open source, nie jestem pewien, od czego zacząć: / Muszę pójść na badania. Jeśli chodzi o wydarzenia w społeczności, chodzę na lokalne spotkania, w Nowej Zelandii jest ich niewiele w porównaniu do tego, jak to wygląda w stanach, ale zdarzają się i są bardzo pomocne. Dzięki za opinie.
hoppipolla,
Zdecydowanie zaangażuj się z innymi prawdziwymi ludźmi, którzy patrzą na Twój kod. Nie ma na to zastępstwa.
jeffreypriebe,
Tak, sprzątam moją aplikację z „osobistym budżetem” i przekażę ją do oceny może na redit lub na innych forach społeczności.
hoppipolla,
9

W miarę zdobywania doświadczenia z pewnością możesz wrócić i przejrzeć poprzednie projekty / kod, aby sprawdzić, gdzie popełniłeś błąd. Z perspektywy czasu to piękna rzecz. Wiem, że sprawdziłem kod / dokumentację, którą napisałem x temu i zdałem sobie sprawę, gdzie popełniłem błąd i gdzie mogłem poprawić.

Fakt, że czytasz blogi, książki, SE itp., Powinien dać ci lepszy wgląd w programowanie jako część twojego osobistego rozwoju, a także prób i błędów oraz ewolucji twoich projektów i kodu z pewnością powinien być dowodem na to, że „ ulepszam. Samokrytyka może być bardzo dobrą rzeczą.

Powiedziawszy to, krytyczne spojrzenie innego dewelopera zawsze stanowi wartość dodaną i może dostarczyć opinie / opcje, o których być może nie pomyślałeś. Chociaż nie znam żadnej konkretnej witryny, w której można zrzucić pełny projekt do przeglądu kodu - możesz umieścić fragmenty tego, co uważasz za podejrzane, w codereview.stackexchange w celu przejrzenia i komentarza, a następnie weź tę opinię na pokład i zastosuj ją gdzie indziej, gdzie stosowne.

Alternatywnie, możesz napisać kilka rzeczy typu open source i rzucić je na github (lub odpowiednik). Społeczność open source z pewnością skrytykuje twoją pracę i ulepszy ją tam, gdzie uznają to za stosowne.

Na koniec, jeśli wytwarzane przez ciebie produkty działają zgodnie z przeznaczeniem, spełniają wymagania biznesowe i są łatwe w utrzymaniu - robisz coś dobrze.

W przypadku pytań, schematów itp. Dotyczących programowania koncepcyjnego Zawsze możesz opublikować te pytania tutaj w PSE i problemy z implementacją kodu w SO.

Deco
źródło
Na zdrowie, myślę, że może zepsuję moją aplikację budżetową i opublikuję fragmenty kodu w widoku kodu.
hoppipolla,
3

Podziel się ze mną swoją opinią, słowami mądrości i pytaniami, nad którymi warto się zastanowić.

Jako doświadczony programista odkryłem przez lata, że ​​najlepszy kod jest tym, który jest prosty (spójrz na koncepcję KISS) i łatwiejszy do modyfikacji przez innego programistę.

Ponadto pozostawia wystarczającą ilość miejsca, aby kod nie był przeciążony (oddychanie) i miał równomierną strukturę. Używaj dobrze znanej konwencji nazewnictwa dla swoich zmiennych, nadając im zrozumiałe nazwy (zrozumiałe dla innego programisty) i pisząc komentarze, które są na temat, nie za dużo i nie za mało.

Postępując zgodnie z powyższym, jesteś już na dobrej drodze.

Ponadto, ponieważ programiści są jak architekci, dam wam bardzo ważne powiedzenie, na które powinniście się zastanowić;

  1. „Doskonałość osiąga się nie wtedy, gdy nie ma już nic do dodania, ale kiedy nie ma już nic do zabrania” - Antoine de Saint-Exupery.

i

  1. „Dążenie do doskonałości motywuje cię; dążenie do doskonałości jest demoralizujące” - Harriet Beryl Braiker.

Jednak,

  1. „Wiele wydarzeń, około 80% skutków pochodzi z 20% przyczyn” - zasada Pareto

W związku z powyższym chcę, abyście zrozumieli, że istnieje równowaga między wysiłkiem a efektem, kosztem i jakością.

I pytania do refleksji;

  1. Co lubię robić za pięć lat?
  2. Czy wysiłek na rzecz poprawy umiejętności kodowania przyniesie korzyści w mojej karierze zawodowej w dłuższej perspektywie?
kyrsid
źródło
1

Możesz sprawdzić https://codereview.stackexchange.com/

To byłoby świetne miejsce, aby uzyskać informacje na temat kodu lub projektu od doświadczonych profesjonalistów.

Jessica Brown
źródło
Tak, przypuszczam, że sedno mojego pytania brzmiało: jest to w pełni rozwinięta aplikacja nadająca się do publikowania tam, czy też gdzieś indziej mogę to zrobić. Wygląda na to, że podgląd kodu jest bardziej ukierunkowany jako fragment kodu do zbadania. Zasadniczo podaj link do projektu github i pozwól mu się uwolnić. Sprzątam go dzisiaj i będę szukał forów społeczności, aby opublikować link. :)
hoppipolla,
1
Od razu może się okazać, że jeden programista może sporo żuć. meta.codereview.stackexchange.com/questions/537/... mówi, że wypróbuj kawałek na raz. Nie byłoby to odpowiednie do przeglądania kodu, ale dokumentacja projektowa na wysokim poziomie o jakiś rodzaj może być pomocny dla recenzenta oglądającego twoją bazę kodu dla pierwszego zdjęcia
Jessica Brown
@OliverHyde Jeśli opublikujesz jeden plik źródłowy, powiedzmy jeden z najbardziej skomplikowanych, otrzymasz informację zwrotną na temat tego pliku, który dotyczy całego projektu. Będzie to dobry sposób na uzyskanie opinii na temat języka programu i stylu kodowania. Jeśli szukasz opinii na temat ogólnego projektu programu, możesz (zgodnie z FAQ) opublikować je na tej samej stronie.
1

Kontynuuj czytanie książek, blogów i pytań dotyczących przepełnienia stosu. Jeśli chcesz poprawić siebie w bardziej społeczny sposób, dlaczego nie zaangażować się w projekt open source? Nie mam na myśli stworzyć własnego projektu , ale pracować nad istniejącym.

Ponieważ jesteś jedynym programistą w tej firmie, wyobrażam sobie, że kiedyś będzie możliwe zatrudnienie kogoś innego. Powiedz sobie, że tego dnia facet będzie musiał przeczytać twój kod. Czy piszesz już dokumentację na temat swojego narzędzia? Pamiętając o tym, że twoje prace mogą być czytane przez innych ludzi, jest dobrą rzeczą dla programistów solo i pomaga w tworzeniu lepszego kodu.

smonff
źródło
1
Tak, właśnie to zacząłem teraz robić z kodowaniem. Mój szef zasugerował, że może
pomyśleć
1

Jestem w podobnej sytuacji jak ty, zostałem zatrudniony jako jedyny programista dla 5-osobowej firmy i tylko jedna z nich jest bezpośrednio zaangażowana w aplikacje, które rozwijam / dodam. Na szczęście nie musiałem tworzyć niczego od zera, ale do tej pory jedynie modyfikowałem aplikacje, które zbudował mój poprzednik. Robiąc to, uważam, że już się poprawiłem, rozpoznając, które części jego kodu były dobre, które części były złe i jak można je poprawić.

Czytanie kodu jest ogromną częścią ulepszania własnego kodowania, więc przede wszystkim sugeruję, abyś przeszukał projekt typu open source, przeczytał kod, zrozumiał go i spróbował ocenić, co jest dobre, a co złe, a co można poprawić. Może nawet napiszesz o tym recenzję kodu na swoim blogu.

Twoje zdrowie!

scd
źródło
Tak, na zdrowie! Pracuję tu trochę dłużej i znalazłem dobry rytm korzystania ze stron internetowych z recenzjami kodu i samooceny.
hoppipolla,
-1

Opuszczać. Znajdź nowego pracodawcę, w którym będziesz pracować w większym zespole programistów, w tym kilku pieprzonych facetów, z których możesz się uczyć.

Wyraźnie masz wszystkie odpowiednie motywacje, aby tego chcieć.

Dom Barker
źródło
4
To nie powinna być pierwsza opcja. OP cieszy się ze swojej pracy i najwyraźniej ma też przyzwoitego szefa, co w dzisiejszych czasach wydaje się rzadkie. Przed skokiem zastanów się, że możesz skończyć z pracą, której nie lubisz, ze złym szefem i bez gwarancji, że nauczysz się nowych rzeczy.