Skocz do zawartości

Co muszę umieć (jakie języki) by napisać dany program


Recommended Posts

Witam

 

Jako że zamierzam nauczyć się programować mam dylemat. Proszę o wasze podpowiedzi co będzie dla mnie najlepsze w waszej opinii. Inaczej mówiąc co konretnie muszę umieć

 

Jest teraz strasznie dużo języków programowania. Wiadomo html css podstawy. I teraz pytanie.

 

Co najłatwiej byłoby wybrać aby jak naprościej - korzystając z tym wszystkich udogodnień jak framerki , bootstrapy stworzyć:

 

CASE:

chce umieć stworzyć strone internetetową która:

 

- Umożliwia stworzenie konta przez użytkownika i prowadzenie własnego prostego "bloga" 

- Blog ten to bedzie prosty dziennik wpisów w ktoym bedzie dodatkowy umieszczał dane za pomocą formularza

- Dany formularz będzie wyliczał dane z odpowiednich pól i tworzył podsumowanie (+ np wykres) w swoim profilu a pózniej bedzie również uwzgledniony w rankingach na stronie głównej

 

prócz tego takie funkcjonalności jak:

- pobieranie danych z innych witryn (wyłapywanie np informacji od pogody z innej strony i przepisywanie je na strone 

- możliwość ustawienia przez uzytkownika jakie dane go konretnie interesuja 

 

 

 

 

I teraz pytanie pomocnicze . Np uczyć się PHP czy od razu NODE.js ?? itp itd..

 

Link to post
Share on other sites

Od zera?

 

Frontend:

HTML5, CSS, JS, jQuery

 

Backend

dowolny język z sensownym frameworkiem do weba i serwer HTTP

 

Baza danych:

SQL

 

Reszta związana z siecią:

HTTP, POST, GET, Cookies, REST, JSON, XML

 

Security:

SQLI, XSS, CSRF, hashowanie haseł.

Edytowane przez Karister
  • Popieram 1
Link to post
Share on other sites

Do wyboru masz kilka technologii, według mnie najłatwiej zacząć w PHP i potem douczyć się jakiegoś frameworka Laravel, Symfony itp. Ruby język ciut trudniejszy od PHP i Pythona za to frameworki Ruby on Rails, Sinatra bardzo łatwe i szybko się w nich tworzy strony z logowaniem i rejestracją. Python podobny do Ruby, ale ma ciut trudniejsze Django i Pyramid, być może ja tak odebrałem. Node jest teraz bardzo modne, jeden język JavaScript do frontendu i backendu, ma trochę inne podejście w porównaniu do pozostałych technologii. Niby najtrudniejszy ze wszystkich wymienionych przeze mnie technologii, ale jak znasz już JS, to będziesz miał mniej nauki. Technologia Node raczej nie jest wybierana do prostych stron, prędzej do aplikacji typu: czatów, portali audio - video z kamerkami, gry itp. Oczywiście w pozostałych też napiszesz czat na socketach. Jest jeszcze nowsza technologia Elixir z frameworkiem Phoenix promująca programowanie funkcyjne, jest dość szybka dlatego że działa na kompilatorze Erlanga. Także PHP najczęściej łączone jest z bazami MySQL, Ruby, Python zazwyczaj z PostgrSQL lub tymi standardowymi wbudowanymi w framework. Node lubi być z MongoDB, można też pod Node pisać w innym języku niż JavaScript, ECMAscript 6, jak TypeScript czy CoffeScript. Do tego musisz znać podstawy HTML5, CSS3, a co do wyboru technologii to na początek wybrał bym coś z pomiędzy PHP, Python, Ruby. Najlepiej też mieć system Linux do Ruby, Django, Node.

  • Popieram 1
Link to post
Share on other sites

Od zera?

 

Frontend:

HTML5, CSS, JS, jQuery

 

Backend

dowolny język z sensownym frameworkiem do weba i serwer HTTP

 

Baza danych:

SQL

 

Reszta związana z siecią:

HTTP, POST, GET, Cookies, REST, JSON, XML

 

Security:

SQLI, XSS, CSRF, hashowanie haseł.

Ok tak jak mniej więcej czaje pierwsze podpunkty - po co, do czeg to kompletnie czarna magia dla mnie to:

 

HTTP, POST, GET, Cookies, REST, JSON, XML

gdzie ,z poziomu czego to się "ogarnia" tak łopatologicznie poproszę

 

SQLI, XSS, CSRF, hashowanie haseł.

tutaj podobnie. Rozumiem żeby finalnie zrobić bezpieczną stronę to to wszystko jest ważne ? Jak to ugryźć ? od czego zacząć?

Do wyboru masz kilka technologii, według mnie najłatwiej zacząć w PHP i potem douczyć się jakiegoś frameworka Laravel, Symfony itp. Ruby język ciut trudniejszy od PHP i Pythona za to frameworki Ruby on Rails, Sinatra bardzo łatwe i szybko się w nich tworzy strony z logowaniem i rejestracją. Python podobny do Ruby, ale ma ciut trudniejsze Django i Pyramid, być może ja tak odebrałem. Node jest teraz bardzo modne, jeden język JavaScript do frontendu i backendu, ma trochę inne podejście w porównaniu do pozostałych technologii. Niby najtrudniejszy ze wszystkich wymienionych przeze mnie technologii, ale jak znasz już JS, to będziesz miał mniej nauki. Technologia Node raczej nie jest wybierana do prostych stron, prędzej do aplikacji typu: czatów, portali audio - video z kamerkami, gry itp. Oczywiście w pozostałych też napiszesz czat na socketach. Jest jeszcze nowsza technologia Elixir z frameworkiem Phoenix promująca programowanie funkcyjne, jest dość szybka dlatego że działa na kompilatorze Erlanga. Także PHP najczęściej łączone jest z bazami MySQL, Ruby, Python zazwyczaj z PostgrSQL lub tymi standardowymi wbudowanymi w framework. Node lubi być z MongoDB, można też pod Node pisać w innym języku niż JavaScript, ECMAscript 6, jak TypeScript czy CoffeScript. Do tego musisz znać podstawy HTML5, CSS3, a co do wyboru technologii to na początek wybrał bym coś z pomiędzy PHP, Python, Ruby. Najlepiej też mieć system Linux do Ruby, Django, Node.

 

Kurczę bardzo dużo przydatnych informacji ale już totalnie się gubie w tym. Jak to jest:

- Nie lepiej od razu uczyć się jezyka na frameworku aby błedów nie popełniac??

- Php ,  Node , Ruby - jak rozumiem to to są języki czy tak ? mogę je łączyć ze sobą ?

"można też pod Node pisać w innym języku niż JavaScript" - hmn to zaraz jak to w innym języku ...

Link to post
Share on other sites

Node.js jest działającym po stronie serwera, wieloplatformowym środowiskiem uruchomieniowym JavaScript na licencji open-source. Oznacza to, że za jego pomocą możesz uruchomić kod JavaScript bezpośrednio na komputerze, bez wykorzystania przeglądarki. Czyli umożliwia Ci pisanie w JavaScript po stronie serwera(backend).

PHP to język który nie potrzebuje frameworka, aby pisać backend, frameworki go tylko usprawniają. Ruby jak i Python to języki do wszystkiego, aby pisać backend musisz wykorzystać jakiś framework, bo nie były stworzone jak PHP tylko do sieciowych aplikacji. Według mnie lepiej nauczyć się wpierw języka, a potem frameworka, bo on nie nauczy Ci podstaw w danym języku programowania, potem nie będziesz wiedział co się tam dzieje. Np. bardzo łatwo stworzysz stronę z rejestracją i logowaniem w frameworku Ruby on Rails bez znajomości języka. Wystarczy Ci książka do RoR i tylko wklepujesz tam polecenia do Ruby. Ale jak byś chciał napisać gre przeglądarkową, czat to bez znajomości języka jesteś w czarnej dziurze. Bo tu już trzeba znać pętle, funkcje, obiektowość itp. Co do innych języków poza JavaScript, to krąży plotka że JS jest nielubianym językiem przez zawodowych programistów innych języków programowania. Łatwo w nim zacząć ale pozwala na różne niedorzeczne udziwnione błędy, niedopuszczalne w całkowicie obiektowych językach programowania. Inaczej się pisze obiektowość w JavaScript, inaczej w Javie plus reszta. Dlatego powstaje do niego tyle różnych frameworków, czy nadzbioru języka jakim jest TypeScript, aplikacje napisane w TypeScript kompilują się bezpośrednio do języka JavaScript. Dart, CoffeScript podobnie.

Link to post
Share on other sites

Słyszałem , że generalnie Programiści nie narzekają na brak zleceń i dobre wynagrodzenie . Ile waszym zdaniem potrzeba czasu aby nauczyć się w takim stopniu programować , aby znaleźć zajęcie w tym aspekcie ? Bo myślę nad przebranżowieniem ale nie wiem czy nie jest to porywanie się z motyką na słońce. Jakie są wasze doświadczenia w tej sprawie ?

Link to post
Share on other sites

Przebranżowienie - temat rzeka. Są osoby, którym się udało. Jeśli jedynym motywatorem jest kasa, moim zdaniem znudzisz się po miesiącu albo i tygodniu. To jest coś, co trzeba lubić i czuć. Ciągnąc dalej kultowy temat wynagrodzeń - analizowałeś, czy faktycznie programiści nie narzekają, czy tylko powtarzasz po innych? Polskie IT to głównie Wrocław, Warszawa i Kraków. I faktycznie w Javie czy .NET ofert jest tona, a firmy rekrutacyjne stawiają obiady i rozdają kubeczki za to, że ktoś pofatyguje się na rozmowę kwalifikacyjną. W tych przypadkach sporo ofert wyraźnie przekracza 7tys (czasem mniej, czasem więcej) na rękę dla osób z 3-letnim doświadczeniem, a to, że pracownik wyjdzie na spacer w trakcie pracy, żeby się zrelaksować i przemyśleć kilka problemów nikomu nie przeszkadza -atmosfera jest wielce ok. Ale to jest jedna strona medalu. Polska nie kończy się na trzech miastach, a języki programowania nie kończą się na Javie i C#. Równie dobrze mogą się trafić oferty na PHP w Rzeszowie za 2k do łapy. Jakie są oferty w Twojej okolicy - znajdziesz w wielu serwisach - 4programmers, nofluffjobs, linkedin, praca, pracuj, itd. Przy okazji zobaczysz wymagane technologie. Taka branża. Nie ma stałych reguł do zakucia. Liczy się analizowanie informacji i myślenie.

 

Co do samego przebranżowienia, moim zdaniem, rok lub więcej. Zakładam, że nie masz wykształcenia kierunkowego, więc musisz to czymś nadrobić i pokazać, że umiesz stworzyć jakiś mały system sam od 0. Czyli samo programowanie to tylko narzędzie pracy. Musisz je biegle znać i rozumieć. Tematy typu programowanie obiektowe, dziedziczenie, polimorfizm, kolekcje, referencje, funkcje, modyfikatory dostępu, itd trzeba znać. To tak, jak kierowca rajdowy nie zastanawia się podczas jazdy, czy kierownicą skręcić w lewo czy prawo.

 

Jak już sam język znasz, trzeba sporo rzeczy dodatkowych do szczęścia. Ja piszę głównie z perspektywy aplikacji webowych w Javie. Na pewno trzeba coś wiedzieć o (zazwyczaj) relacyjnych bazach danych. Relacje, select, join, update, exists, having, group by to raczej niezbędnik. Trzeba też wiedzieć, jak taką bazę spiąć z programem. W przypadku webówki trzeba coś wiedzieć o tym, jak "działa Internet" - HTTP, POST, GET, Cookies. Do tego każdy typ oprogramowania ma swoją specyfikę i typowe dla niego dobre praktyki - np MVC, architektura trójwarstwowa. Podobna tematyka to dobre praktyki ogólnie w programowaniu - wzorce projektowe, dekompozcja kodu na metody. Z innych ważnych rzeczy to frameworki. Istnieje po kilka(naście) do każdego języka programowania i warto na start poznać podstawy jednego czy dwóch. Na koniec trzeba jakiś serwer aplikacyjny, żeby gotowy systemik na czymś odpalić.

 

Ogólnie, jak ktoś się w to nie wciągnie, nie wyobrażam sobie zmuszenia się do nauki tego wszystkiego przez kilkanaście miesięcy.

Link to post
Share on other sites

@Karister Zgodzę się z tobą w 99%. Dodaj Gdańsk do listy miast IT :) Od siebie mogę dodać, jako .NET'owiec, jak kolega wyżej wspomniał, zależy to od miasta i technologii. Javy, php'a musisz uczyć się sam lub z kursów online bo ciężko znaleźć osoby, które nauczą Cię za darmo w fizycznej lokalizacji. Osoby, które chcą zgłębić tajniki Microsoft'wych technologii mają o wiele łatwiej bo w każdym większym mieście na uniwersytetach, politechnikach działają koła naukowe, które uczą z ramienia MS na podstawowe certyfikaty znajomości technologii, m.in które ja prowadzę jako jeden z wykładowców takiego koła i jest to darmowe dla każdego. Ja osobiście od swojej strony poleciłbym ASP.NET MVC, ale to tylko dlatego, że m.in jego znam najlepiej ze wszystkich webowych technologii i wiedziałbym jak to zrobić. Najpierw odpowiedz sobie na pytania, w jakim mieście mieszkach, jaka w nim technologia panuje i dostosuj się do rynku, jednak jeśli myślisz o pracy zdalnej czy nawet przeprowadzce to najpierw znajdź sobie artykuły nt. wad i zalet danego języka, jak wypada na tle innych i czy ktoś w nim jeszcze pracuje.

Link to post
Share on other sites

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Odpowiedz w tym wątku...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

  • Ostatnio przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

×
×
  • Dodaj nową pozycję...