Jestem początkującym i mam niewielką wiedzę na temat programowania.
Czy dobrze byłoby, gdybym bezpośrednio uczył się C ++ z książek obejmujących nowe C ++ 11, czy powinienem studiować stare najlepsze książki C ++?
Czy powinienem mieć niewielką wiedzę na temat C ++ przed nauczeniem się C ++ 11? czy mogę zacząć bezpośrednio z tego miejsca?
Czy spowodowałoby to problem, jeśli bezpośrednio zacznę od C ++ 11? Jeśli nie, to zasugeruj kilka książek na temat C ++ 11.
Programmers — Stack Exchange is a site for professional programmers...
W takim przypadku, czy mógłbyś poprowadzić mnie do strony dla początkujących programistów? Jestem również początkującym programistą i mam kilka podstawowych pytań ...Odpowiedzi:
Istnieje wiele ulepszeń użyteczności, które sprawiają, że C ++ 11 jest bardziej zrozumiały dla początkujących, szczególnie tych, którzy mają doświadczenie w innych językach z tymi funkcjami. Inne zmiany w C ++ 11 są interesujące tylko dla zaawansowanych użytkowników, więc możesz zostać przytłoczony, jeśli wybierzesz książkę zaprojektowaną głównie do nauczenia różnic. Upewnij się, że każda książka, którą otrzymujesz, jest przeznaczona dla całkowicie początkujących w C ++.
To powiedziawszy, prawdopodobnie będziesz musiał ostatecznie nauczyć się starego sposobu, ponieważ istnieje wiele istniejących kodów, a nawet nowy kod C ++ 11 będzie zawierał stary sposób robienia rzeczy, jeśli programista tak zdecyduje. Piszę C ++ na co dzień, a moja firma wciąż nie zajęła się oceną kompilatorów kompatybilnych z C ++ 11, nie mówiąc już o zastosowaniu jednego z nich w produkcji.
źródło
Nie musisz używać starego C ++, aby zacząć korzystać z C ++ 11, są nowe funkcje w C ++ 11, ale użycie jest opcjonalne. Umiejętność korzystania z funkcji C ++ 11 może być zaletą, ale na pewno nie będzie to niekorzystne w przypadku pracy ze starszymi (wcześniejszymi niż 11) bazami kodu, gdy poznasz specyfikę starszych wersji.
Nauka języka C ++ byłaby dobrym miejscem do rozpoczęcia nauki, a dodatek B nauczy Cię funkcji języka C ++ 11 po opanowaniu podstaw.
Rozumiem, dlaczego niektórzy sugerowali Java / CSharp itp. Jako łatwiejsze języki alternatywne, ale nauczyłem się trochę C ++ przed przejściem do CSharp i nie jestem gorszym programistą z tego powodu, wręcz przeciwnie, umiejętności programowania sięgają znacznie głębiej niż język składnia / funkcjonalność i solidne podstawy w C ++ pozwalają łatwo nauczyć się dowolnego innego imperatywnego języka OOP.
źródło
Trudno powiedzieć.
Stare C ++ jest bardziej polem minowym i fajnie jest nauczyć się nawigować po takiej bestii. Pomoże ci również zrozumieć, dlaczego rzeczy są wykonywane tak, jak są i jakie są implikacje różnych konstrukcji.
Z drugiej strony stary C ++ nie jest tym, czego chcesz, gdy piszesz kod.
Ale, po raz kolejny, stary C ++ jest czymś, co będzie się rozwijać w branży przez kolejne 20 lat.
Uwielbiam C ++ 11, ale na razie można go używać tylko w startupach. Nie w dużych starszych kodach. A przejście od razu do C ++ 11 może sprawić, że będziesz mieć nierozwinięte umiejętności w nieprzyjemnych częściach C ++. Który zadziała, gdy jakiś zaawansowany konstrukt C ++ 11 wycieknie lub ulegnie awarii, ponieważ jest używany w poprawny składniowo, ale logicznie niepoprawny sposób.
źródło
Pomimo wielu ulepszeń
C++11
,C++
nadal nie jest łatwym językiem. Java, choć nie tak łatwa, jak niektórzy mogą sądzić, wciąż jest łatwiejszym językiem o bardzo dobrej wydajności (często prawie tak szybkimC++
) i oferuje lepsze IDE (możeVisual C++
jest tak dobra jak obecne IDE Java, ale nie ma szczęścia tutaj w Linuksie), dużo bardziej wszechstronna standardowa biblioteka (JDK), więcej bibliotek (np. Hibernacja , Spring , JEE , Lucene itp.) i brak wycieków pamięci (cóż, prawie żadna - nadal można zbudować wyciek pamięci w Javie, ale trudniej to zrobić niż wC++
). Mówiąc szczerze, dzięki nowoczesnemu oC++11
wiele łatwiej jest unikać porów pamięci.C ++ 11 ma wiele ciekawych funkcji, takich jak lambda, automatyczne słowa kluczowe, semantyka przenoszenia i wiele innych. To zdecydowanie lepszy język niż wcześniej
C++98
. Zobacz przegląd autorstwa Herb Sutter na temat nowych funkcji wC++11
: Elementy nowoczesnegoC++
stylu.Podsumowując, myślę, że każdy powinien nauczyć się przynajmniej trochę
C++
. Jeśli zostały programowania wJava
,Scala
,Ruby
lubPython
w ostatnim dziesięcioleciu i nigdy nie dotknąłC
lubC++
, teraz zC++11
myślę, że nadszedł czas, aby nauczyć sięC++11
i doskonalić swoje umiejętności programowania robiąc tak.Prawdopodobnie nie będę
C++
dużo używać w pracy w nadchodzących latach, a kiedy będę potrzebować mocniejszego językaJava
, prawdopodobnie wybiorę Scalę, ale przyjrzę się bliżejC++11
i spróbuję nauczyć się i zrozumieć nowe funkcje, w szczególności te dotyczące wielowątkowości i współbieżności.źródło
Weź głęboki oddech i przeczytaj ten artykuł Petera Norviga.
Przeczytałeś to? Ok, jeśli jesteś początkujący, musisz zacząć od małych kroków. - wstaw tutaj język - może przyjść później, sprawdź Coursera lub Udacity, aby zapoznać się z niektórymi kursami dla początkujących w zakresie informatyki.
Po zakończeniu tego radzę powoli przejść przez to język programowania K&R The C, jeśli jesteś ustawiony na język „C”.
Pracuj nad podstawami, reszta przyjdzie na czas.
źródło
Najnowsze książki wprowadzające na temat C ++ coraz częściej obejmują także C ++ 11. Czytam Sam's Teach Yourself C ++ po pracy z językami skryptowymi, ale nie C / C ++ przez prawie dziesięć lat i uważam to za bardzo pomocne. Bardzo szybko zacząłem rozumieć główne idee C ++ (w tym dużo STL) i zdałem sobie sprawę z bardzo wielu szczegółów, które różnią się w C ++ 11.
Jak niektóre inne plakaty wspomnieli, C ++ 11 jest pod wieloma względami łatwiejsze niż starszych standardów z dodatkami w stylu jak skryptowy
auto
,for(int &i : m_vector){}
itd. Więc jeśli „trochę wiedzy” pochodzi z języków takich jak Python lub Matlab, znajdziesz c ++ 11 nieco bardziej „naturalny” niż wcześniejsze standardy.Chciałbym również zauważyć, że do tej pory kompatybilność kompilatora dla C ++ 11 jest ( prawie ) kompletna, więc posiadanie kodu „zbyt aktualnego do kompilacji” nie jest już problemem.
Krótko mówiąc, zrób to.
źródło
Kiedy mój czas C był uważany za warunek C ++, szczególnie dla początkujących programistów. Ponieważ musisz dowiedzieć się, co robi język i dlaczego został tak zaprojektowany. C ma mnóstwo świetnych i wystarczających pomysłów na język programowania, który nigdy nie będzie nieaktualny. Dlatego uważam, że to najlepszy początek.
A po zapoznaniu się z podstawowym punktem widzenia na temat programowania, być może będziesz musiał wybrać, co należy zrobić jako następny ruch, co oznacza, że wybierz język do nauki tak głęboko, jak to możliwe. Bez względu na to, jak głęboko się zagłębiasz, na ogół może decydować o tym, jak głęboko możesz się dostać w przypadku innych języków, co oznacza, bez względu na to, ile języków się nauczyłeś, najgłębszy zawsze będzie pierwszym, który wykopałeś. Dla mnie przeprowadziłem badania nad Javą i sam stworzyłem niektóre modele Javy, aby lepiej zrozumieć jego funkcjonalność jądra.
Następnie możesz nauczyć się wszystkiego, czego chcesz, ponieważ całkowicie rozumiesz technologię języka programowania. Zacząłem uczyć się C #, Go, Python, a nawet Scali i wykonałem wiele projektów dla zabawy / pracy. Osobisty rekord to 3 miesiące od rozpoczęcia nauki języka do stania się 1,0 szefem rozwijającego się projektu.
W moim przypadku minęło ponad 15 lat od mojego pierwszego programu i nawet nie pamiętam, co to jest. Wierzę, że jeśli wystarczająco ciężko pracujesz, na pewno poczujesz się lepiej i szybciej ode mnie.
źródło
Jako początkujący myślę, że najpierw musisz przejść przez koncepcje C ++, ponieważ C ++ 11 i wszystko jest jak nowa wersja, ale C i C ++ są podstawą każdego rodzaju rozwoju. Gdy nauczysz się C ++, większość pojęć zostanie automatycznie wyczyszczona.
źródło
C ++ to naprawdę świetny i potężny język. Jednak nakłada również dużą odpowiedzialność na programistę.
Jeśli jesteś zupełnie nowy w programowaniu, ułatw sobie życie i zacznij od C #. Jego składnia jest oparta na C ++, ale obsługa błędów jest o wiele bardziej przyjazna dla początkujących, pomagając ci, gdy coś pójdzie nie tak.
Jeśli nie masz nic przeciwko metodom, klasom, dziedziczeniu i chcesz się rozwijać w środowisku, w którym zarządzanie pamięcią i zasobami systemowymi jest ważniejsze niż produktywność, to C ++ jest dobrym wyborem i zacznę od nauki obecnego standardu. Pamiętaj, że C ++ wymaga zrozumienia pamięci i aktywnego zarządzania nią. Popełniaj tutaj błędy, a wszystko, co dostajesz, to zrzut rdzenia lub dane zawierają bajty, które nie mają sensu. I często punkt, w którym znajdziesz problem, nie jest związany z faktyczną przyczyną.
źródło
Dlaczego chcesz zacząć od C ++?
Osobiście polecam przeciwko C ++ jako pierwszemu językowi. Jest trudny, złożony, trudny ... po prostu dużo niższy poziom i bardziej „niebezpieczny” niż większość innych języków programowania.
Radzę wybrać c #, java, python lub javascript ... i dobrą książkę po drodze. Dzięki nim będziesz miał o wiele przyjemniejszy czas.
źródło