
Do not learn another programming language - ashtewari
http://www.tewari.info/2014/05/31/do-not-learn-another-programming-language/
======
CHY872
I suspect I'm not unique in the fact that I don't learn languages for the sake
of learning languages - I learn languages because they're typically better for
the task that I want to do than the tools that I'm currently using.

Some people learn languages for fun, some learn them to be productive - I have
never successfully managed to learn a language without some kind of real-world
motivation, and have never met someone who has (by learn, I mean a software
project of a thousand or more lines - my standards are not too high).

~~~
sanderjd
Yeah, I very much enjoy learning languages just for fun, but it's a bit of a
catch-22 - to _really_ learn a language I find I need to do something "real"
with it, and upon doing something "real" I find that the language is no longer
quite so much fun. But I do think that broad superficial knowledge helps
inform decisions about which narrower set of things to pursue deeper knowledge
in.

------
steamer25
Kind of reminds me of portions from:
[http://learnpythonthehardway.org/book/advice.html](http://learnpythonthehardway.org/book/advice.html)

...and I agree that there's a whole world of skills out there to master e.g.,
Audio Engineering, Cooking, Electronics, Linear Algebra, Rhetoric, etc.

That said, if you want to be a better programmer, I'd say keep learning
languages until you've at least got a good representative from three different
paradigms e.g.,

    
    
      Statically-typed, objected oriented: C++, C# or Java
      Dynamic/Scripting: JavaScript, Perl, Python or Ruby
      Functional: Erlang, Haskell or Lisp
    

Of course, there are plenty of other categories as well. E.g.,

    
    
      Data Access/Transformation: SQL or XSLT
      Low-level/hardware: Assembly or Verilog
      Stack-based: Factor or Forth
      Special purpose (Proof Assistance/Logic/Statistics/etc): Coq, ProLog or R

Etc. etc. etc.

...and many languages cross-over between various categories but the point is
to be exposed to the different ways of thinking and to get a sense of which
tools are the best fit for a given class of problems.

------
stcredzero
If you want to be an uber-programmer, first learn how to do structured
programming. Get good enough at structured programming, such that the prospect
of doing structured programming in another language is trivial. (You're just
doing a 1-to-1 mapping between a certain construct to its form in a particular
language.)

Then do the same thing for Object Oriented programming.

Then do the same thing for Functional Programming.

Then, develop those skills so you can write _good_ code in those 3 paradigms.
There's a lot more to do after that, but by the time you're done with those
things, you'll have a good basis for understanding just about any programming
language.

------
coldcode
Too late. Reading Swift...

~~~
NAFV_P
Same here. Reading x64 assembly...

Let the good times roll.

------
logn
I think the focus should be on making things. Eventually in making things
you'll want to learn a new skill because it's important for what you're
making. For instance, maybe that new website needs a logo and so you learn
Gimp/Photoshop, or maybe that audio plugin for ProTools requires you to learn
C++, so you learn that.

------
jkscm
[https://webcache.googleusercontent.com/search?q=cache:http:/...](https://webcache.googleusercontent.com/search?q=cache:http://www.tewari.info/2014/05/31/do-
not-learn-another-programming-language/)

------
daedelus_j
tl;dr 'don't learn another language because i like visual design'

------
briantakita
I have to agree with the OP. I just have not felt like it's worth it to learn
a bunch of programming languages. Don't get me wrong, I know a few & I'm
familiar with the patterns that different languages/platforms bring. I'm not
exactly itching to learn and practice yet another programming language.

There's more to life than learning & practicing all of the flavors of
programming languages. Like learning how to create, express yourself, and
feel/think in different & unique ways.

“Absorb what is useful, Discard what is not, Add what is uniquely your own.”

\- Bruce Lee

------
some_employee
A thing that has been puzzling me for a while in regard to learning
programming languages. Is it worth doing "checkbox learning"?, i.e. just
learning a lot of languages superficially so you can "check the boxes" in
regard to various job-ads without downright lying about it.

~~~
sanderjd
I think employers are typically looking for actual depth in a set of
technologies that are important to them, but that the set of _important_
technologies is typically smaller than the set of keywords on the job posting,
and demonstrated problem solving and learning skills really are just as, if
not more, important than even the important technologies.

------
rabino
I love languages in general, and programming languages in particular. I find
it really fun to learn new ones. And on top of being fun, hopefully each new
one I learn will add some tools to my communication belt.

------
cornholio
"These are some of the logos I have created" \- judging by the results, I hope
you are a better programmer than you are a designer.

It's a nontrivial cost to start from scratch as an artist, and there isn't
much synergy between programming and design. As for some of the other things
he suggests, photo editing and 3d modeling, you are basically learning a tool
and enslaving yourself to the workflow of a certain program created by a
certain company. Sure, you can switch to another tool, but again you are
facing massive switch costs before you reach a decent productivity level.

Programmers have it good, solid algorithm, design and debugging skills are
universal and you can always tack the syntax of the day on top of them.

~~~
benharrison
You're right, the logos really aren't good. But to give him credit he did say
"I have a bit of a designer inside me. Not a lot. Just a bit."

I appreciate a developer who knows enough about design, even if their own
design talent isn't very strong, to recognize quality and the efforts put in
by other designers.

------
jhull
not even Swift?

~~~
yconst
Think of it this way: you could design your logos etc. using Swift, in
interactive mode!

------
octopus
It is the job of a programmer to learn/try new programming languages and
always improve his skills.

------
andrewtbham
Is this getting upvoted in response to Apple's anouncement of Swift?

------
stephenitis
I sense a better blogpost from someone in the community who can show better
anecdotal results on how learning design improves code.

I will upvote that post.

------
pettycashstash
the website is inaccessible

------
derengel
hackerdotted ;)

~~~
ashtewari
It is back now.

------
JacksonGariety
Can someone say "linkbait?"

