墨少离 - 个人小站,分享一些资源以及心得~ - 学习C++50条忠告.(转) 的评论
https://www.msl.la/archives/172/
1.把C++当成一门新的语言学习(和C没啥关系!真的。);2.看《Thinking In C++》,不要看《C++变成死相》;3.看《The C++ Programming Language》和...拉跨的仔
https://www.msl.la/archives/172/comment-page-1#comment-390
2021-12-07T14:28:39+08:00嗯嗯,感谢墨少离
https://www.msl.la/archives/172/comment-page-1#comment-384
2021-12-06T17:15:16+08:00我没办法给你最好的答案,不过可以给你一个外国有人的回答
TL;DR: It depends, but if you have no idea what you want to do you should either do whatever your CS degree requires you to do or focus on a high-level, general purpose language. I’d say use C# because the most common development environment for C# provides a lot of helpful support for beginning devs, but others will point you to Java (a plausible option, although probably not where you should stay) or C/C++ (if they like suffering or place a high value on the mostly pointless CS trivia like big O).The language you should pick is almost entirely dependent on what you want to do. For example if you want to work on the team I’m currently working on, which does a fair bit of business automation using scripts that run on Linux boxes, you have to learn and use Perl because that’s what most of the code they use is written in.For the languages in your list, check the following descriptions and decide which case best applies to what you’re trying to do. Keep in mind that old code is kept around as long as anyone knows of the code and finds it useful, so it takes a very long time for a language to die off once it’s achieved broad popularity with at least a couple percent of developers.COBOL: Included because it will be referenced in Java’s description. It is a zombie language. It was the language for business development a couple decades ago, and it still runs in a truly remarkable number of places, especially when you realize that COBOL developers have been trying to kill it off for decades because they want to retire and can’t find anyone prepared to take on the on-going maintenance.Java: Probably the most widely used language in business today. It is basically in the same place COBOL was at twenty or thirty years ago. That is, you can do pretty much anything your business wants you to do in Java either directly in the language or using one of the many third party libraries and tools. It can also be run pretty much anywhere your business will want to run its software. It is also slow to incorporate new learning to make the language easier to use, and many of the companies that use it are even slower to incorporate changes than the language itself. It could easily be following the COBOLs path, but as long as you’re cool with slowly becoming obsolete you could have a reasonably long career as a Java developer as long as you get into it fairly quickly. If you learn Java, you would be well advised, however, to quickly pivot to another language that runs on the JVM (Kotlin, Scala, Haskell, etc.) after you’ve mastered the basics.JavaScript: One member of the triad of languages (loosely speaking. The other two languages, HTML and CSS, are mark-up languages not programming languages.) that you pretty much must know to be credible as a web developer. It isn’t an especially pleasant language to work in, but the tooling has been improving for years now so that it’s almost caught up to the backend languages of a decade or two ago. There are alternatives on the web that will be mentioned below, but they’ve got a lot less mindshare at this point than JavaScript.PHP: An alternative for working on the web. It used to be much more popular, but it’s evolution was much more evolutionary (driven by what PHP devs where complaining about at the time) than planned with an eye for language coherence. PHP is the underlying scripting language for WordPress, and is probably used a fair bit in other places. It isn’t regarded as an innovative language, but it can certainly get things done for websites.C#: Like Java, but is less widely used, has a somewhat less rich ecosystem of third-party libraries and tools (compared to Java; mostly because it’s less widely used), and is more open to learning from the on-going evolution of software development. It’s developed by Microsoft, which results in a fair bit of irrational hatred, and used to be much more restricted to running on Windows (again, it’s a Microsoft product). It is still one of the best languages to use when developing software that will run on one version of Windows or another. It’s easy to use for web and back-end development, and has been expanding to a greater and greater array of platforms more recently. In the form of Mono, it can run on even more platforms than Java including gaming consoles. It’s a solid choice for just about anything you’ll want to do as a developer (as long as your goal isn’t running on the JVM), but it’s often the second or third best option when you’re not planning on running it on Windows. Keep in mind that folks are actively working on making it better in more places, so even if you don’t want to use it now it’s worth keeping an eye on.C: The lowest level language on the list, you should actively avoid it unless your goal is to work on the Linux kernel or in environments that are severely memory constrained. In order to write good C code you need to spend quite a bit of time thinking about how the underlying hardware is actually going to run your code, which most humans are bad at doing. It’s also a top language to use if you’re more interested in getting in pissing contests about who’s a better developer since it’s most useful for working at the limits of software development, where very little development actually takes place.C++: It’s a super-set of C that adds a bunch of helpful bits and pieces like proper strings and more reliable ways of handling arbitrary user input. If you want to work in environments that require very high performance, like OS development, database system development, or working in embedded systems, C++ is probably a better choice than C, but you should double check how many C++ features you actually want before you start doing a bunch of development. Also good for pissing contests about who’s a better software developer for the same reason as C.SQL: Used for interacting with most, if not all, relational databases. You will need to know the basics if you work in a business setting, since there are almost always databases involved in business development. You may be able to avoid it if you work on OSes and/or embedded systems, but only as long as they’re not writing anything to a database.Python: Right now this is probably the premier language for analysts of all sorts. It’s a very effective scripting language with lots of libraries and add-ons for pretty much any analysis you want to run. It can be used in a software development environment, but the idiomatic ways of doing Python development are somewhat unfriendly for working as teams of developers. However, if you want to be a data scientist, data analyst, business analyst, or sys-admin and not a software developer or engineer, Python is a great way to go and is a great career path as Machine Learning and AI have been really heating up recently. It is also probably a better scripting language than Perl and/or the various shells available on Linux. It’s primary competitors are Perl or Ruby on the scripting side or R on the data analysis side.拉跨的仔
https://www.msl.la/archives/172/comment-page-1#comment-382
2021-12-06T11:54:26+08:00[私密评论]