Czarna lista tematów

4

To trzeba w końcu zrobić! Czarną listę tematów, tak jak na elektrodzie!
Moje propozycje:

  • Mam 30 lat i chciałbym zostać programistą. Czy mam jeszcze szansę?
  • Czy programistów zastąpi AI?
  • Czy studia są potrzebne?
  • Co minimalnie trzeba ogarnąć żeby dostać pracę w IT?
  • Czemu odrzucają moje CV? Przecież dałem link do Githuba
  • Jaki język wybrać na początek?
  • Ten temat

Jakby się uprzeć to można by zatrudnić jakiś machine learning do detekcji tego typu tematów a potem wklejać standardową odpowiedź, albo jeszcze lepiej, wstawić całą opracowaną wcześniej przez specjalistów dyskusję!

1

Możesz w ramach prac społecznych przygotować takie gotowe odpowiedzi, a moderatorzy będą do nich linkować. Wszyscy będą wdzięczni.

0

Jaki język wybrać na początek?

  1. O ile nie chcesz zajmować się konkretnie stronami WWW lub móc tworzyć amatorskie gry z gatunku indie:

Cel, dla jakiego chcesz uczyć się programować, nie ma znaczenia. I tak, nim zaczniesz cokolwiek sensownego pisać (czy to dla siebie, czy zawodowo), musisz napisać sporą liczbę zadań ćwiczebnych. Gdy już ogarniesz podstawy, wtedy przesiadka na język adekwatny do Twojego konkretnego zastosowania będzie względnie prosta.

Dlatego znaczenie ma tylko to, który język nadaje się do nauki. I tak mamy:

  • C++: Zalety: Duża liczba tutoriali; powszechnie wykorzystywany w edukacji; można na jego podstawie uczyć zarówno podstawowego programowania imperatywnego (którego powinieneś uczyć się na początek), jak i później rozwijać tę wiedzę w kierunku programowania obiektowego; podstawowa funkcjonalność ma bardzo podobną składnię do wielu innych języków. Wady: Ma liczne mało oczywiste pułapki (chociaż to akurat może być traktowane jako zaleta, bo przesiadka z języka pozbawionego takich pułapek na C++ może okazać się niemiła); tutoriale są często niekompetentne i zawierają błędy; wiele osób uważa, że programowanie czysto imperatywne i strukturalne w C++ to herezja, uważając, że tak należy pisać wyłącznie w C; bardzo duży i skomplikowany (jak ogarniesz podzbiór tego języka, to nie znaczy, że będziesz rozumiał kod innych ludzi).
  • C: Zalety: Mniejszy, prostszy w budowie i mniej skomplikowany niż C++; jedyny naturalny paradygmat to ten imperatywny i strukturalny (czyli ten, którego będziesz się uczyć na początku). Wady: Jak C++ posiada liczne mało oczywiste pułapki; mało jest materiałów edukacyjnych skierowanych konkretnie pod C, a nie C++; wiele osób uważa, że C to język ekspercki, toteż możesz mieć większe problemy ze znalezieniem pomocy w podstawowych pytaniach.
  • Java / C#: Zalety: Bardziej intuicyjne, mniej usiane pułapkami i prostsze w nauce i użyciu niż C lub C++; łatwość znalezienia materiałów edukacyjnych. Wady: Przesiadka z nich na C lub C++ może być niemiła i wymaga konieczności odrzucenia wielu intuicji i nauczenia się sporych partii materiału, które są podstawą w C lub C++, ale nie istnieją w Jave czy C#; oba te języki są w gestii korporacji (odpowiednio Oracle i Microsoft), co dla niektórych jest nieakceptowalne.
  • Python: Zalety: W opinii wielu jeden z najbardziej spójnych i eleganckich języków. Wady: Wyjątkowo powolny, tak powolny, że czasami aż można to odczuć; przesiadka z Pythona na Javę lub C# może być uciążliwa, a na C lub C++ jeszcze bardziej.

Moja rada: Jeśli chcesz się uczyć porządnie, jesteś cierpliwy i pracowity: Wybierz C lub C++; jeśli upierasz się, by jednak móc w miarę szybko zobaczyć rezultaty, wybierz Python; jeśli czujesz się pomiędzy, wybierz Javę lub C#.

  1. Jeśli chcesz tworzyć strony WWW i nic innego Cię nie interesuje:

Tu jest tylko jedna opcja. HTML + CSS + JavaScript (nie mylić z Javą!)

  1. Jeśli chcesz stworzyć grę indie:

Unity3D z C#.

Ale nie łudź się: To trudniejsze, niż Ci się wydaje. Pierwsze miesiące pójdą na naukę i TYLKO na na naukę: nic nie stworzysz, co mógłbyś opublikować. Twój cel to Steam, ale zanim będziesz mógł tam się udać, zrób kilka projektów, które będziesz mógł opublikować w mniej prestiżowych miejscach.

Dodatkowym problemem jest fakt, że oprócz programowania, projektowanie gier jest dużo trudniejsze i bardziej czasochłonne, niż Ci się teraz wydaje. To samo tyczy się assetów: muzyki, dźwięków, modeli 3D, rysunków. Co do assetów, masz 5 opcji: (a) zrobić je samemu – trudne, czasochłonne i wymagające sporych umiejętności; b) Spróbować zebrać coś spośród darmowych, dostępnych w Internecie – będziesz musiał iść na kompromisy, raczej nie znajdziesz akurat tego, czego szukasz; c) zakupić dostępne w sklepach, np. Unity Asset Store – też będziesz musiał iść na kompromisy, ale znacząco mniejsze niż gdybyś szukał tylko darmowych; poważniejszy problem to spore wydatki; d) przekonać kogoś, by za darmo z Tobą pracował nad projektem niekomercyjnym – w tym celu musisz mieć w zasadzie wszystko zrobione oprócz tych assetów, żeby wyglądać poważnie; e) zatrudnić kogoś – koszta!

Nie tykaj się natomiast:

Assembler, R, etc – języki tylko do zastosowań eksperckich;

Brainfuck i inne "ezoteryczne" – języki wymyślone "dla żartu" i/lub przesadnie trudne, pomyślane jako wyzwanie dla ekspertów.

Delphi / Pascal itp – przestarzałe.


Komentarze?

0

@kmph: trzeźwy jesteś?

Przeczytaj jeszcze raz (albo z pięć razy, dla pewności) tytuł tego wątku i treść pierwszego posta. Ten wątek dotyczy stworzenia czarnej listy tematów, a wylistowane pytania to przykłady takich tematów. Odpowiadasz na pytania, których nikt tutaj nie zadał i na które odpowiedzi nikt tutaj nie czeka. W dodatku od czasu do czasu bredząc lub pisząc zupełnie nie na temat.

Ogarnij się nieco.

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