Live data from Hacker News

Being confidently programming language agnostic

blog.bradfieldcs.com

41–50 of 131 posts

Re: Being confidently programming language agnostic

#41

I'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'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's not good enough, in my opinio…

May I suggest this book specifically tailored for python best practices? https://jeffknupp.com/writing-idiomatic-python-ebook/ Its a wonderful read. Will really unleash the pythonista inside of all us! If you really want to go deeper, I suggest these as well: https://goo.gl/CY6zPu https://goo.gl/UbMrTb Those shortened links take you to amazon (not affiliated in any way, FYI, just though the length of the URLs was obn…

Thanks for sharing these. I've been writing a lot of python code solo lately and have started to worry about how to make it more pythonic so it's maintainable and comprehensible to any future collaborators.

Re: Being confidently programming language agnostic

#42

I'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'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's not good enough, in my opinio…

May I suggest this book specifically tailored for python best practices? https://jeffknupp.com/writing-idiomatic-python-ebook/ Its a wonderful read. Will really unleash the pythonista inside of all us! If you really want to go deeper, I suggest these as well: https://goo.gl/CY6zPu https://goo.gl/UbMrTb Those shortened links take you to amazon (not affiliated in any way, FYI, just though the length of the URLs was obn…

> Those shortened links take you to amazon

Just FYI: Hacker News already shortens links, no need to pass them through a 3rd party service. I personally prefer seeing a readable domain name before clicking (as I'm sure many others do as well).

Re: Being confidently programming language agnostic

#43

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. 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,…

I just wish those universities actually produced programmers who understand the low level mechanics of how computers work. I.e. Why your program runs 100x slower if you're not careful about cache misses, pretty basic stuff like that. Moore's law is over, it's time to start caring about performance again.

What makes you think universities produce people who don't care about performance and aren't educated about low level mechanics? That's an honest question, I'm not challenging your experience. I don't know what your experience is, of course.

In my experience, people with CS degrees do understand the low level mechanics statistically more often, on average, than people who don't have a formal education, or people who go to 2 year colleges or trade schools. There are definitely people who make it through a degree without thinking much about cache misses, but in my life I've seen far more programmers without an education fail to understand caching than programmers with an education.

I've never met anyone, educated or not, that doesn't care about performance at all. I do meet people that prioritize what they care about, and choose to weigh performance of the programmer over performance of the computer, choose to prefer working with valuable abstractions over milking every cycle out of the machine.

It depends on what you're doing. Usually, thinking about CPU cache misses in a web development environment is premature optimization and a massive waste of effort. Not always, but usually there are other more important performance considerations.

Re: Being confidently programming language agnostic

#44
post #42

Earlier quoted context omitted.

May I suggest this book specifically tailored for python best practices? https://jeffknupp.com/writing-idiomatic-python-ebook/ Its a wonderful read. Will really unleash the pythonista inside of all us! If you really want to go deeper, I suggest these as well: https://goo.gl/CY6zPu https://goo.gl/UbMrTb Those shortened links take you to amazon (not affiliated in any way, FYI, just though the length of the URLs was obn…

> Those shortened links take you to amazon Just FYI: Hacker News already shortens links, no need to pass them through a 3rd party service. I personally prefer seeing a readable domain name before clicking (as I'm sure many others do as well).

Had no idea. I do appreciate this. I must of missed the 'splainer. I'll remember that for next time.

Re: Being confidently programming language agnostic

#45

I used to arrogantly think I could be productive in any language given a week or so to adapt. I often used the phrase "a good dev is a good dev in any language." That belief was rather abruptly broken when I joined a project using C++/CX it was so far outside of my previous experience that I had a really bad time of it. I happily picked up the actual language very quickly. It was the surrounding ecosystem of compiler…

Migrating between platforms can be painful.

I’ve started coded C++/CX without noticeable degradation in productivity.

But when I need to code for e.g. linux, because of those tools and practices you’ve mentioned my productivity was much worse compared to using Visual Studio on Windows, even when using same standard C++.

Re: Being confidently programming language agnostic

#46
post #40
post #11

Earlier quoted context omitted.

I agree. It's not always the language which makes it tough to integrate yourself into a project, sometimes it's all the frameworks, libraries, build tools, and general makeup of the project itself. I worked for a company a few years back doing ASP.NET (my experience is mostly Linux based tech, but you can pick up a language, right?). The language was fine, the design patterns used all quite standard, but the project…

I still find the "frameworks and libraries" argument to be false, but enough people say it that I believe it must be at least partially true. I'll settle for a belief that the argument is overstated. IMO the largest issue is the breadth of one's experience, or lack thereof. And by that I don't mean simply the number of languages but how well versed one is in different languages and their surrounding ecosystems. For i…

I think it's about how much newness you have to handle at the same time. I can happily take a project using a framework or two I've never touched before. Or something in a new language but similar domain. But when you have the perfect storm of new language, tools and framework (and maybe OS) that's when it hurts. I'm not saying I totally couldn't switch, but it made me change me attitude a bit from '2 weeks and I'll be back at full productivity' to something more like '2 to the power of number of new things'. The more newness that has to be handled at the same time, the longer it takes to pick up all the interconnections.

Re: Being confidently programming language agnostic

#47
post #11

I used to arrogantly think I could be productive in any language given a week or so to adapt. I often used the phrase "a good dev is a good dev in any language." That belief was rather abruptly broken when I joined a project using C++/CX it was so far outside of my previous experience that I had a really bad time of it. I happily picked up the actual language very quickly. It was the surrounding ecosystem of compiler…

I agree. It's not always the language which makes it tough to integrate yourself into a project, sometimes it's all the frameworks, libraries, build tools, and general makeup of the project itself. I worked for a company a few years back doing ASP.NET (my experience is mostly Linux based tech, but you can pick up a language, right?). The language was fine, the design patterns used all quite standard, but the project…

> In fact, I think you worked on it too.

Oh dear, what code of mine have you seen? :-) (email address is in my profile if it's not something publicly discussable)

Re: Being confidently programming language agnostic

#48

I'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'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's not good enough, in my opinio…

> I probably program in all languages like a C programmer

As the old "Real Programmers Don't Use PASCAL" article says,

> The determined Real Programmer can write FORTRAN programs in any language.

Re: Being confidently programming language agnostic

#49
post #7

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's names.

While using fewer, better languages for more is fantastic, I doubt you really want a single language. Try replacing shell, Structured Query Language, and C with the same language. I won't say that it can't be done, but I think you'll lose a lot if you succeed.

C# really tries hard at that fwiw

Re: Being confidently programming language agnostic

#50

Earlier quoted context omitted.

Note: I didn't watch the video yet and my opinion might change by then. C teaches you something very useful, which is how the computer works under the hood. Most things you do in C loosely match to what the computer does, and learning C helps you understanding the computer. I'm not saying that it's a good language to start with, but it's okay. Unlike C++. IMO, C++ is the worst possible language to start with. The rea…

The argument is that learning C before C++ teaches you how to program C++ wrong. Nothing more, nothing less. I wasn't judging C++ as a beginner language. I wasn't judging C either.

I disagree with this part: "learning C before C++ teaches you how to program C++ wrong".

IMO the problem isn't so much about learning C or not. It's about which other languages do you learn alongside it.

You need to practice in a language that encourages OOP and a little bit of functional programming, like JS or Ruby.

If you know Ruby and C already, using C++ well will be much easier :)

Post reply on HN