TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

Being confidently programming language agnostic

235 点作者 ergot超过 8 年前

18 条评论

cryptoz超过 8 年前
Discussion a few weeks ago: <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=13291593" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=13291593</a>
pfarnsworth超过 8 年前
I&#x27;ve been programming for 20+ years, and recently moved over to Python. Sure, I could code on day one and figure out how to get programs working pretty easily. But the nuances with it are still things I need to work on a lot. I still don&#x27;t program Pythonicly, I program like a C programmer writing Python. In fact, I probably program in all languages like I would a C programmer, and that&#x27;s not good enough, in my opinion.<p>I have fallen in love with Python because it&#x27;s so damn easy to get productive, and I really want to be a great Python programmer. That takes a lot more time than the OP suggests, and requires you to immerse yourself in the patterns of the language and in the community, in my opinion. Not just dabble a bit and then check a box saying &quot;I&#x27;m a polyglot!&quot;
评论 #13457266 未加载
评论 #13457886 未加载
评论 #13457980 未加载
评论 #13457395 未加载
评论 #13458494 未加载
评论 #13460744 未加载
评论 #13461389 未加载
评论 #13462241 未加载
评论 #13459912 未加载
chrisfosterelli超过 8 年前
I know formal education often gets a lot of criticism around HN, but I think the approach the article is talking about is heavily mirrored in most university computer science curriculums.<p>Universities tend to focus on paradigms and patterns, and typically force a student to learn at least 3 languages throughout their education (much more if they want to). Just in my undergrad I learned C, C++, C#, Objective C, Swift, assembler, Java, Go, Javascript, Python, and Haskell. My personal experience is that university grads are much better at adapting to new languages than someone with 4 years experience in only a single language.<p>That&#x27;s of course not to say you can&#x27;t do the exact same sort of education without going to school (and probably in less time).
评论 #13456908 未加载
评论 #13457144 未加载
评论 #13456968 未加载
评论 #13456770 未加载
评论 #13457413 未加载
评论 #13457252 未加载
评论 #13457431 未加载
评论 #13457476 未加载
评论 #13460323 未加载
评论 #13458499 未加载
评论 #13479929 未加载
评论 #13457306 未加载
SimonPStevens超过 8 年前
I used to arrogantly think I could be productive in any language given a week or so to adapt. I often used the phrase &quot;a good dev is a good dev in any language.&quot; That belief was rather abruptly broken when I joined a project using C++&#x2F;CX it was so far outside of my previous experience that I had a really bad time of it.<p>I happily picked up the actual language very quickly. It was the surrounding ecosystem of compilers, build tools, debugging tools, libraries, standard patterns and best practises that was too deep for me to become proficient in.<p>That said. Learning every language you can is definitely beneficial. Just don&#x27;t expect to hit the same level of productivity in all of them.
评论 #13458461 未加载
评论 #13456829 未加载
评论 #13462160 未加载
评论 #13460778 未加载
评论 #13458340 未加载
评论 #13457648 未加载
achikin超过 8 年前
I think nowadays people spend too much time learning new tools and too less time doing something really valuable using that tools. I wish I had only one language, so I can concentrate on more interesting things rather than learning yet another random set of operators and library function&#x27;s names.
评论 #13456995 未加载
评论 #13457003 未加载
RivieraKid超过 8 年前
After you have some experience with, say, 3 to 5 different languages, you can learn new ones very quickly (hours, days) with little effort because you know almost all of the core concepts (OOP, FP, mutability, generics, ...). There&#x27;s no point in learning &quot;all of the languages&quot; for its own sake. Just learn a bunch of different ones to learn different ideas and programming styles.<p>What takes more time is the standard library, common libraries, tools. A good example of that is iOS development in Swift. Learning the language is almost negligible compared to learning all of the technologies and tools. But coming from Android, I think I&#x27;m close to about 50 % of full productivity after two weeks.<p>I never understood why there&#x27;s so much focus on the &quot;x years experience in y&quot; in the industry. A solid developer should be able to become fluent in any language and technology within a month or two.
评论 #13459105 未加载
评论 #13459053 未加载
评论 #13458362 未加载
dvcrn超过 8 年前
I&#x27;m glad that the trend is slowly going towards hiring generally smart people instead of a &quot;PHP&#x2F;Rails&#x2F;Python programmer&quot;. I&#x27;d say, better hire people that can easily adapt something new if needed rather than saying &quot;I am a PHP programmer, I don&#x27;t want to do this new project in Ruby.&quot; (I met my good share of people in previous companies thinking in that way to the extend that they would quit if asked to write in something else than what they were hired for)<p>In my current company they were looking for a Go programmer. I never wrote a single line Go before, yet they hired me and now I am writing Go. Then we had a deficit in the iOS team, so I learned Swift and now work on our app.
salex89超过 8 年前
I have a sort of an issue with learning a lot of new languages. As much as I like to try them out, I like (and have) to learn things like big data processing or devops stuff and distributed systems and so on. And to be honest, when I get into the theory of those fields, the language does not mean so much. At the end I end up using what the targeted industry is searching for, and they do not need languages, they need solutions. And the language is rarely a solution.<p>In that set of things, a new language is somewhere lower in the priority list for learning new things. Sry.
sriku超过 8 年前
A few recommendations on this, since at where I work a talk is organized on this very topic today.<p>1. A great book that covers multiple paradigms of programming is Roy and Haridi&#x27;s &quot;Concepts, Techniques and Models of Computer Programming&quot; <a href="https:&#x2F;&#x2F;mitpress.mit.edu&#x2F;books&#x2F;concepts-techniques-and-models-computer-programming" rel="nofollow">https:&#x2F;&#x2F;mitpress.mit.edu&#x2F;books&#x2F;concepts-techniques-and-model...</a> . This stands hand in hand with the better known SICP.<p>2. Folks in the CS and programming world seem to ignore bleeding edge work being done in the arts space. To get a broader view of languages than &quot;characters that go into a plain text file&quot;, expose yourself to the live-ness of the following -<p>2.ø Smalltalk - one of the first fully available language and runtime that is still usable today.<p>2.a Max&#x2F;MSP&#x2F;Jitter - by David Zicrelli and Millet Pickette&#x27;s - Visual data flow programming language with decades of dominance in the Computer Music scene.<p>2.b SuperCollider - for architecture lessons as well as another multi-paradigm language.<p>2.c Impromptu - a Scheme based live coding environment for music and visuals by Andrew Sorenson. Normal REPLs will bow in front of most &quot;live coding&quot; languages used for music.<p>2.d Ixilang by Thor Magnusson - another live coding language, where the language is in a sense inseparable from its run time environment. The current running behaviour of a textual program could also depend on how the program evolved.<p>In short, break out of normal modes of thinking and attain Turing nature, at which point you can proclaim that all languages have Turing nature and yet retain your discriminating view.
评论 #13460792 未加载
aryehof超过 8 年前
I feel we are starting to lose the plot. The problem isn&#x27;t about learning another language or which to use next. Instead it is about how to solve and represent complex problems and systems in code.<p>Any language is a means to an end, not the end itself.<p>Focusing on languages and language constructs is of value to those in academia and those working solely in the domains of computing and computer science. For the rest, it is the equivalent of navel gazing, the equivalent of focusing on grammar, when the task is authoring a novel.
评论 #13460346 未加载
general_ai超过 8 年前
Languages are easy, libraries are hard.
评论 #13458743 未加载
protomok超过 8 年前
Interesting article, love the emphasis on continual learning.<p>But I actually think we (software devs) need to focus more on mastering languages as opposed to learning many languages at a surface level.<p>Books like &quot;Effective C++&quot; (<a href="https:&#x2F;&#x2F;www.amazon.ca&#x2F;Effective-Specific-Improve-Programs-Designs&#x2F;dp&#x2F;0321334876" rel="nofollow">https:&#x2F;&#x2F;www.amazon.ca&#x2F;Effective-Specific-Improve-Programs-De...</a>) really showed me the huge divide between knowing a language and mastering a language.
zzzcpan超过 8 年前
I think Norvig and the author are wrong about &quot;parallelism&quot; requirement. I mean it&#x27;s good to know what&#x27;s out there, but you can&#x27;t really understand it if you try to learn it from a multithreading point of view. Fundamentals for it are part of distributed systems and this is where people should get into and learn things about ordering, consensus, asynchronous and synchronous systems, etc.
评论 #13458730 未加载
评论 #13458370 未加载
ar15saveslives超过 8 年前
It&#x27;s far from enough to know a programming language. If someone knows how to write binary search on C++, he can rewrite it on Python, JS or C# pretty easily.<p>But software development is not about writing pure functions, it&#x27;s about writing applications, so frameworks and good practices is more important than the language.
didibus超过 8 年前
What you should really do is learn the concepts of structured programming. Every language is just a notation on top of a fundamental programming construct. If you learn those instead, you&#x27;ll know every language.<p>I recommend reading Exercises in Programming Style by Cristina Lopes as a good starting point.
known超过 8 年前
CPU is managed by the Kernel, and Memory is managed by You in C&#x2F;C++;<p>CPU is managed by the Kernel, and Memory is managed by Perl&#x2F;PHP&#x2F;Python&#x2F;Java;
lucidguppy超过 8 年前
I think that learning C before C++ might hurt you.<p><a href="https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=YnWhqhNdYyk" rel="nofollow">https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=YnWhqhNdYyk</a>
评论 #13457302 未加载
评论 #13457415 未加载
Koshkin超过 8 年前
An excellent article, well worth reading. As it points out, implementing the idea of learning a programming language for the sake of learning requires being highly selective in deciding which languages to learn. One language I would advise against learning is C++ - because, first, it may take too much time to learn to be worth the effort, and, second, the language itself is not all that interesting, and its standard library (especially STL), while does bring some novel ideas to the table, is so heavily affected by the particulars of the language itself, that maybe the D language would serve the same purpose better. Also, please do yourself a service and learn C# instead of Java. (This is not to create any doubt in the <i>extreme</i> usefulness of learning both C++ and&#x2F;or Java for practical purposes.)
评论 #13458377 未加载