Je suis débutant et n’ai que peu de connaissances en programmation.
Est-ce que ce serait bien si j'apprenais directement le C ++ à partir de livres qui couvrent le nouveau C ++ 11 ou devrais-je étudier à travers les meilleurs vieux livres de C ++?
Devrais-je avoir peu de connaissances sur le C ++ avant d'apprendre le C ++ 11? ou je peux commencer directement à partir de là?
Cela poserait-il un problème si je démarre directement à partir de C ++ 11? Si non, alors suggérez quelques livres sur C ++ 11.
Programmers — Stack Exchange is a site for professional programmers...
Dans ce cas, cela vous dérangerait-il de me guider vers le site pour les programmeurs débutants? Je suis aussi un débutant en codage et je vais poser quelques questions élémentaires ...Réponses:
De nombreuses améliorations en matière de convivialité rendent C ++ 11 plus compréhensible pour les débutants, notamment ceux qui ont de l'expérience dans d'autres langages avec ces fonctionnalités. Les autres modifications apportées à C ++ 11 intéressent uniquement les utilisateurs expérimentés. Vous risquez donc de vous sentir dépassé si vous choisissez un livre conçu principalement pour enseigner les différences. Assurez-vous que tous les livres que vous recevez sont conçus pour les débutants en C ++.
Cela étant dit, vous devrez probablement apprendre l'ancienne méthode à la longue, car il y a beaucoup de code existant, et même le nouveau code C ++ 11 contiendra l'ancienne façon de faire les choses si le programmeur le souhaite. J'écris C ++ pour gagner ma vie et mon entreprise n'a toujours pas encore évalué les compilateurs compatibles C ++ 11, et encore moins d'en utiliser un en production.
la source
Il n'est pas nécessaire d'utiliser l'ancien C ++ pour commencer à utiliser C ++ 11. C ++ 11 comporte de nouvelles fonctionnalités, mais leur utilisation est facultative. Savoir utiliser les fonctionnalités C ++ 11 peut être un avantage, cela ne serait certainement pas un inconvénient de travailler avec des bases de code héritées (antérieures à 11) une fois que vous avez compris les particularités des versions antérieures.
Apprendre le C ++ serait un bon point de départ pour apprendre et l’ annexe B vous apprendra les fonctionnalités de C ++ 11 une fois que vous aurez appris les bases.
Je peux comprendre pourquoi certaines personnes ont suggéré Java / CSharp, etc. comme langages alternatifs plus faciles, mais j’ai appris un peu le C ++ avant de passer à CSharp et je ne suis pas un programmeur pire à cause de cela, au contraire, les compétences en programmation sont bien plus profondes que le langage. syntaxe / fonctionnalité et avec une base solide en C ++, vous pouvez apprendre facilement n’importe quel autre langage OOP impératif.
la source
C'est difficile à dire.
L'ancien C ++ est plus un champ de mines et c'est agréable d'apprendre à naviguer dans une telle bête. Cela vous fera également comprendre pourquoi les choses sont faites comme elles sont et quelles sont les implications de différents concepts.
Là encore, l'ancien C ++ n'est pas ce que vous voulez lorsque vous écrivez du code.
Mais là encore, l’ancien C ++ est ce que beaucoup d’industries vont bouger pendant encore 20 ans.
J'adore le C ++ 11, mais il n'est utilisable que dans les startups pour le moment. Pas dans les grandes bases de code héritées. Et passer directement au C ++ 11 peut vous laisser avec des compétences non développées dans des parties méchantes en C ++. Ce qui va se retourner une fois que certaines constructions avancées de C ++ 11 auront des fuites, ou se bloqueront, car elles sont utilisées de manière syntaxiquement correcte, mais logiquement incorrecte.
la source
Malgré de nombreuses améliorations
C++11
, leC++
langage n’est toujours pas simple. Java, bien que pas aussi facile que certains peuvent le penser, reste un langage plus facile avec de très bonnes performances (souvent presque aussi rapide queC++
) et offre de meilleurs IDE (peutVisual C++
- être aussi bon que les IDE Java actuels mais pas de chance ici sous Linux), beaucoup bibliothèque standard plus complète (le JDK), plusieurs bibliothèques (par exemple, Hibernate , Spring , JEE , Lucene , etc.) et aucune fuite de mémoire (enfin, presque aucune - vous pouvez toujours créer une fuite de mémoire en Java, mais il est plus difficile de le faire que dansC++
). Pour être juste, avec moderneC++11
, il est beaucoup plus facile d'éviter les poireaux à mémoire.C ++ 11 a de nombreuses fonctionnalités intéressantes telles que lambdas, mot clé automatique, sémantique de déplacement et bien plus encore. C'est certainement une bien meilleure langue que ce
C++98
n'était. Voir cette présentation de Herb Sutter sur les nouvelles fonctionnalités deC++11
: Éléments deC++
style moderne .En résumé, je pense que tout le monde devrait en apprendre au moins certains
C++
. Si vous avez été la programmation enJava
,Scala
,Ruby
ouPython
pour la dernière décennie et n'a jamais touchéC
ouC++
, maintenant avecC++11
je pense qu'il est temps d'apprendreC++11
et d' améliorer vos compétences en programmation en le faisant.Je n'utiliserai probablement pas
C++
beaucoup de travail au travail dans les années à venir et si j'ai besoin d'un langage plus puissant queJava
, j'opterai probablement pour Scala, mais j'examinerai de plus prèsC++11
et essayerai d'apprendre et de comprendre les nouvelles fonctionnalités, en particulier ceux sur le multithreading et la concurrence.la source
Prenez une profonde respiration et lisez cet article de Peter Norvig.
Avez-vous lu ça? Ok, si vous êtes débutant, vous devez commencer par petites étapes. -inser la langue ici- peut venir plus tard, consultez Coursera ou Udacity pour des cours d'initiation à l'informatique pour débutants.
Après avoir terminé cela, je vous conseillerais de travailler lentement le langage de programmation C de K & R si vous utilisez un langage «C».
Travailler sur les bases, le reste viendra à temps.
la source
Les livres d'introduction récents sur le C ++ couvrent également de plus en plus le C ++ 11. J'ai lu Teach Yourself C ++ de Sam après avoir travaillé avec des langages de script, mais pas C / C ++ pendant près de dix ans et je l'ai trouvé vraiment utile. Je me suis très vite familiarisé avec les idées centrales du C ++ (y compris beaucoup de STL) et conscient de nombreux détails qui sont différents en C ++ 11.
Comme d'autres affiches l'ont mentionné, C ++ 11 est à bien des égards plus facile que les normes plus anciennes avec des ajouts de style script
auto
, comme ,for(int &i : m_vector){}
etc. Si votre "peu de connaissances" provient de langages comme Python ou Matlab, vous trouverez C ++ 11 un peu plus "naturel" que les normes antérieures.Je tiens également à souligner que la compatibilité du compilateur pour C ++ 11 est ( presque ) complète. Par conséquent, le code "trop à jour pour être compilé" n'est plus un problème.
Bref, fais-le.
la source
À l'époque, le C était considéré comme une condition préalable du C ++, en particulier pour les débutants en programmation. Parce que vous devez comprendre ce que fait une langue et pourquoi elle a été conçue comme ça. C a eu beaucoup d’idées géniales et suffisantes sur le langage de programmation, qui ne sera jamais démodé. Ainsi, je crois que c'est le meilleur début.
Et après avoir eu un point de vue fondamental sur la programmation, vous devrez peut-être choisir la prochaine étape, ce qui signifie choisir une langue pour apprendre aussi profondément que possible. Peu importe la profondeur que vous obtenez, il peut généralement décider de la profondeur que vous pouvez obtenir pour toute autre langue. Autrement dit, peu importe le nombre de langues que vous avez apprises, la plus profonde sera toujours la première que vous avez découverte. Pour ma part, j'ai effectué des recherches sur Java et créé quelques modèles de Java pour mieux comprendre les fonctionnalités de son noyau.
Après cela, vous pourrez peut-être apprendre ce que vous voulez, car vous maîtrisez parfaitement la technologie du langage de programmation. J'ai commencé à apprendre le C #, Go, Python et même Scala et j'ai réalisé de nombreux projets pour le plaisir et le travail. Le record personnel est de 3 mois à compter du début de l’apprentissage d’une langue pour devenir 1.0 à la tête d’un projet en développement.
Dans mon cas, mon premier programme a plus de 15 ans et je ne me souviens même plus de quoi il s'agit. Je crois que si vous travaillez assez dur, vous irez certainement mieux et plus vite que moi.
la source
En tant que débutant, je pense qu’il faut d’abord passer par les concepts C ++, car C ++ 11 et tout ressemble à une nouvelle version, mais C et C ++ sont la base de tout type de développement. Une fois que vous avez appris le C ++, la plupart des concepts seront automatiquement effacés.
la source
C ++ est un langage vraiment génial et puissant. Cependant, cela place également beaucoup de responsabilités sur le programmeur.
Si vous êtes complètement nouveau en programmation, simplifiez-vous la vie et commencez avec C #. Sa syntaxe est basée sur C ++, mais la gestion des erreurs est beaucoup plus facile à utiliser pour les débutants pour vous aider lorsque les choses tournent mal.
Si vous êtes à l'aise avec les méthodes, les classes, l'héritage et que vous souhaitez vous développer dans un environnement où la gestion de la mémoire et des ressources système est plus importante que la productivité, le C ++ est un bon choix et je commencerais par apprendre le standard actuel. Gardez à l'esprit que le C ++ nécessite que vous compreniez la mémoire et la gériez de manière active. Faites des erreurs ici, et tout ce que vous obtenez est un noyau vidé ou vos données contiennent des octets qui n’ont pas de sens. Et souvent, le point où vous trouvez le problème n’est pas lié à la cause réelle.
la source
Pourquoi voulez-vous commencer avec C ++?
Personnellement, je recommande contre C ++ en tant que première langue. C'est délicat, complexe, difficile ... simplement un niveau beaucoup plus bas et plus "dangereux" que la plupart des autres langages de programmation.
Je conseille de choisir c #, java, python ou javascript ... et un bon livre en cours de route. Vous passerez un moment beaucoup plus agréable avec ceux-ci.
la source