Cześć i czołem. Planuje pójść na studia informatyczne więc fajnie by było już jakoś się rozeznać w temacie i zacząć programować na poważnie. Zależy mi na praktycznych językach, które się często używa w dzisiejszej branży informatycznej. Jestem użytkownikiem Linuxa-jesli to ma jakieś szczególne znaczenie.
Jakie języki polecacie?
I oczywiście jakieś książki do nauki ów języków, lub poradniki internetowe(yt, itp.).
Jeśli książki to jak coś do nauki programowania, a nie konkretnych języków. Przynajmniej na początek. Nie kupuj też więcej niż jedną czy dwie książki bo ciężko się czyta jak wiesz, że czeka cię 5 kobył do przerobienia i w tedy ma się skłonności do czytania po łebkach byle odhaczyć. Lepiej później wybrać coś co Cię zainteresuje bardziej przez ten czas niż kupować na wyrost.
Jeśli chodzi o książki to tak jak napisałem, pierwsza to na pewno o nauce programowania, druga to mogą być jakieś algorytmy i struktury danych - bardzo się przyda na studiach i potem w życiu programisty.
Jeśli chcesz się uczyć programowania już w jakimś konkretnym języku to warto może iść w stronę Java lub C# ze względu na ich popularność na uczelniach no i w sumie w firmach. Więc możesz szukać książki uczącej programowania właśnie w jednym z tych dwóch języków.
Chociaż ja osobiście uważam (ale ja to jestem dziwny i jak o tym mówię to ludzie dziwnie się na mnie patrzą), że najlepiej uczącą książką programowania jest Symfonia C++ Jerzego Grębosza. Z tą książką jest problem taki, że uczy ona programowania w C++ który jest jak pokazuje życie dość ciężkim językiem dla większości osób ze względu na swoją niskopoziomowy. Mimo to uważam, że książka najlepiej uczy programowania ze względu, że jest napisana przez polaka, książki tłumaczone na nasz język często zawierają błędy w tłumaczeniu co utrudnia odbiór treści. Nie raz się na tym już przejechałem.
Obecnie najnowsza wersja książki o której wspomniałem nazywa się Opus magnum C++11, nie czytałem jej, ale jestem pewny że jest co najmniej tak dobra jak Symfonia którą przeczytałem dwa razy.
Oczywiście możesz kupić sobie Opus mangum i ograniczyć się tylko do podstawowych rzeczy i nie zgłębiać się w C++. Później łatwo przerzucisz się na Java lub C#.
Gdy postawiłem ostatnią kropkę zaświtało mi, że jesteś użytkownikiem linuxa. Więc jeśli nie chcesz bawić się w maszyny wirtualne z windowsem to C# nie będzie dla Ciebie. To jest język do pisania aplikacji pod Windowsa, owszem jest tam jakoś dostępny pod linuxem, ale nie wiem jak on tam działa, więc do nauki może lepiej sobie odpuścić.
Oczywiście możesz też próbować sił w Pythonie lub NodeJS. Jednak osobiście polecałbym języki bazujące na składni języka C. Gdy zaczynałem studia było kilka osób umiejących programować w Pythonie i powiem szczerze, że nie wiedzieli co się dzieje na zajęciach z podstaw programowania na których pisaliśmy w Javie. Python jest dość specyficzny i łatwiej jest się na niego przerzucić umiejąc inny język niż przesiąść się z Pythona na coś innego.
Da się.
Ale na pewno VisualStudio byłoby bardzo pomocne.
No i wiadomo, że co to jest aplikacja konsola i chcesz zrobić pełnoprawną z GUI, a z tym niezbyt kolorowo na Linux.
Tak nie wchodząc w szczegóły.
Jeśli chodzi o rozpoczęcie nauki, to ja natomiast uważam, że najlepiej naukę zacząć od kursów wideo.
Po książkę sięgnąłbym dopiero po kilku projektach.
Do programowania w C# w Linux mozna wykorzystać MonoDevelop, chociaż oczywiście w przypadku tego języka lepiej będzie pracować na Windowsie. Z oprogramowaniem nie powinno być problemu. Większość uczelni oferuje liczne licencje, np. konto Microsoft Imagine, a tym samym darmowy dostęp do Visual Studio, oczywiście w tej dość rozbudowanej wersji Enterprise.
Jeśli chodzi natomiast o samo rozpoczęcie przygody z programowaniam, podzielam zdanie Fizydy. Powinno się zacząć od C/C++, żeby nauczyć się zasad operowania na pamięci, poznać typy danych (których brak, a raczej brak konieczności ich jawnego wskazywania w Pythonie). Jak sam napisałeś, planujesz iść na studia informatyczne, więc rozpoczęcie właśnie od C/C++ będzie jak najbardziej wskazane. Python, mimo iż względnie prosty, nie nauczy Cię zbyt wiele, chociaż oczywiście warto go znać ze względu na bardzo rozbudowane biblioteki i…no właśnie, prostotę.
Odnośnie samej nauki, warto zacząć od jakiejś książki i robić z niej przykłady, nawet przepisywać te gotowe, zmieniać coś, starać się zrozumieć. Jak już się opanuje jakieś podstawy, wymyślać sobie samemu jakieś problemy i próbować je rozwiązywać. Postawić sobie jakiś cel i starać się go zrealizować - przy pomocy książek, forów (np. stack overflow), dokumentacji! danego języka. Po jakimś czasie wrócić do starych kodów, ulepszyć je wykorzystując nowo zdobytą wiedzę itd.