C++, Python, proste skrypty w bashu + znajomość Linuxa - w którym kierunku powinienem pójść

0

Mam do was pytanie. Jest tu dużo osób pracujących komercyjnie wiele lat, więc pewnie mi doradzicie. Robię doktorat z modelowania molekularnego (mamy w zakładzie modelowanie molekularne i bioinformatykę, ja się tym pierwszym zajmuje), kończę drugi rok. Ze względu na to, że na uczelni z etatami bywa różnie i zarobki są niskie myślę nad tym, żeby spróbować skręcić w stronę programowania. Chcę dokończyć doktorat i w między czasie zrobić jakieś projekty programistyczne.

Co do pracy, w której teraz jestem to jeśli chodzi o programowanie:
-piszę proste skrypty w bashu, używam grep, sed i awk (ale jestem mocno początkującym);
-znam Linuxa - edytory tekstowe, uprawnienia, łączenie zdalne, tworzenie aliasów, pracę na klastrach obliczeniowych, maszyny wirtualne;
-znam Pythona i czasem używam go do pisania prostych skryptów, ale Anacondy nie używam, choć się jej uczyłem;
-Ukończyłem kurs z C i C++, jakieś 60-70 godzin ćwiczeń, choć pewnie z 3-4 razy więcej spędziłem na pisaniu programów w domu, uczyłem się programowania obiektowego w C++, i ogólnie napisałem 12-13 bardzo prostych lub prostych programów.
-kiedyś hobbystycznie zrobiłem kilka stronek (HTML + CSS) i też kiedyś trochę uczyłem się Javy (jakiś prosty program okienkowy typu mini encyklopedia - po kliknięciu na jakiś tam obrazek wyświetlały się różne informacje)
-znam podstawy Git;

Teraz mam do was pytania:

  1. W którym kierunku powinienem pójść? (Myślałem też o pomocy przy pisaniu programów do modelowania molekularnego (pisane są w C++), ale dużo pracy w tym nie jest, więc chciałbym pomyśleć o jakimś szerszym zakresie. Czuję, że słabo u mnie ze specjalizacją, chciałbym to zmienić i skupić się na Pythonie lub C++
  2. Ciężko mi rozpocząć pracę na część etatu poza Zakładem, niedługo mam jakiś tam wyjazd. Myślę, że w przyszłe wakacje mi się uda mieć 3 miesiące na jakiś staż. Do tego czasu co powinienem zrobić? Zrobić kilka projektów i wrzucić je na Githuba? Może jakiś projekt Open Source. Co byście zrobili na moim miejscu.

Z góry bardzo dziękuję.

2

Nie jestem w stanie Ci doradzić ścieżki programistycznej (czy np. istnieje jakaś gdzie możesz wykorzystać doświadczenie w modelowaniu molekularnym gdyż nawet nie wiem co to jest). Natomiast jeśli chcesz być programistą to najłatwiejsza i zarazem najtrudniejsza droga to programować. Czyli właśnie stworzyć jakieś projekty mniejsze i chociaż z jeden większy

1

Powiem tak, miałem podobnie.
Jak an swój profil to wymiatałem w C++ (po zatrudnieniu taki dostałem feedback od rekrutera).
Na początku nie szalej z ambicjami finansowymi, bo to co w tej chwili umiesz to jest minimum, by zacząć, więc pracodawca będzie cie musiał wyszkolić (ponieść koszty).

Doszlifuj git-a
Upewnij się, że znasz debuggera (o zgrozo wielu zaczynających pracę nie umie używać, a im mniej się umie tym bardziej jest potrzebny).
Zainteresuj się pisaniem testów i techniką Test Driven Development.
To co wybierzesz jako technologię ma mniejsze znaczenie.

1

moja rada jest taka - ucz się narzędzi
Teraz programowanie to budowanie z klocków, w którym (o ile to nie jest cpp) język jest najłatwiejszym do ogarnięcia klockiem :)
np kolejki komunikatów RabbitMQ, ActiveMQ
WebApi
chmury
jak kolega wcześniej wspomniał TDD
złapiesz koncept, popatrzysz na realizację w róznych językach, napiszesz kawałek kodu, który coś robi w oparciu o narzędzie
np - chcesz popatrzeć na regexpy
to napisz (dla siebie) walidator email wg RFC
https://www.mailboxvalidator.com/resources/articles/acceptable-email-address-syntax-rfc/
i już masz 2 rzeczy w jednej - kodzenie i regexpy

polecam livecoding, np z Gynvelem (YT) - fajne rzeczy, i jeden plus, nie trzeba samemu wymyślać tematu lekcji, a sam wiem, że po całym dniu, życia czy pracy to może być problem nie do przejścia

generalnie proponuję (domyślam się, że jesteś starszą młodzieżą i masz co robić po południami) technikę żabiego skoku - czyli robisz coś, potem skaczesz gdzie indziej (inny temat) potem gdzie indziej
oczywiście z głową - co to znaczy z głową
nie zaczynasz od mikoserwisów ale od narzędzi, które się wykorzystuje w tym podejściu, a potem dopiero patrzysz na taki sposób tworzenia softu, inaczej to jakbyś 10l chciał zmieścić w szklance - rozleje się wszystko
a jeśli coś będzie nie do przejścia, bo nie wiem gdzieś będzie jakiś kubernates (przykład) a ni w ząb tego dziada nie znasz,
1 - olewasz i skaczesz gdzie indziej
2 - patrzysz się co to za zwierzę, a potem kontynuujesz przerwany temat

teraz (wg mnie) nauka programowania to nauka wykorzystania narzędzi, kiedy po co i dlaczego - co można osiągnąć co nie, potem mając umiejętność korzystania z narzędzi możesz iść niejako wszędzie

Najtrudniejszy pierwszy krok :)

2

Poducz się Linuxa i Pythona do tego jakiś kubernetes z ansiblem/chefem/puppetem + Chmura (aws/azure/gcp) i możesz lecieć na jakiegoś devopsa czy innego chmurowca

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