"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.
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.
If I was developing for an Apple device I would learn Swift for sure! The old Apple approach is so cumbersome, band-aided, and duct-taped that it hurts.
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).
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.
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.
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.
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.
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.
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.
...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.
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.”
25 comments
[ 0.25 ms ] story [ 93.4 ms ] threadIt'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.
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.
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).
I will upvote that post.
Let the good times roll.
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.
...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.,
Of course, there are plenty of other categories as well. E.g., 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.
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