6 Replies - 898 Views - Last Post: 27 September 2013 - 03:27 AM

#1 slehmann101  Icon User is offline

  • D.I.C Head

Reputation: 21
  • View blog
  • Posts: 146
  • Joined: 30-November 11

Different strategies for learning

Posted 24 September 2013 - 03:25 PM

I have a friend and both me and him are hobby programmers. We both take very different approaches to programming. Whereas I try to take one or two languages that interest me and learn them well and try and create something with them he seems to try and learn as many as possible as fast as possible. He knows Lua Ruby Lisp C C++ C# java Javascript and so on (pretty much everything save for python). However he never seems to do anything with these languages and I question how well he actually knows them. Me and him often argue about the matter and his main defense is that it makes him a versatile programmer that is able to adapt to any task. My question to you is have you ever met anyone like this and if so how did you deal with them? Additionally which is the better approach? This is a really open ended question and I just wanted to see other peoples thoughts on the matter.

Is This A Good Question/Topic? 0
  • +

Replies To: Different strategies for learning

#2 andrewsw  Icon User is online

  • Fire giant boob nipple gun!
  • member icon

Reputation: 3221
  • View blog
  • Posts: 10,808
  • Joined: 12-December 12

Re: Different strategies for learning

Posted 24 September 2013 - 03:50 PM

Quote

if so how did you deal with them?

I don't, I leave them to their own devices.

Quote

I question how well he actually knows them.

You, and he, will never know until he attempts to create, and finish!, something.

Quote

Whereas I try to take one or two languages that interest me..

Stick to one language (is my opinion..). Only when you know one language really well might you move on to explore another. Of course, if you are really struggling with your first-chosen language, then it might be necessary to try another.

Quote

which is the better approach?

Neither. Choose one language, study it well, enter and run lots of code samples.. Gradually attempt to build your own (small) programs. Read lots!

This post has been edited by andrewsw: 24 September 2013 - 03:50 PM

Was This Post Helpful? 0
  • +
  • -

#3 cfoley  Icon User is offline

  • Cabbage
  • member icon

Reputation: 1940
  • View blog
  • Posts: 4,027
  • Joined: 11-December 07

Re: Different strategies for learning

Posted 25 September 2013 - 02:41 AM

Quote

both me and him are hobby programmers ... Me and him often argue about the matter


I also enjoy learning different languages and, a while ago, I embarked on a project to learn about ten new languages. What it did for me was broaden my general knowledge about languages. I thought, being a Java programmer, that I know about object orientated programming. Playing with Smalltalk showed me that I was missing a very large part of the point. Haskell and Erlang were ruthless introductions to functional programming but the multi-paradigm Ruby and Python gently encouraged me to incorporate some functional style into my otherwise imperative comfort zone.

I can't say I really know any of those languages and if I wanted to complete a project using one of them, I'd have to learn it all over again. It might be easier the second time around but I'd be mainly starting from scratch. Back in Java land I have some new tricks that have come in handy, so that's nice.

So, who is right? You or him?

Perhaps you both are. You like making things and he likes learning things. It's a hobby. It doesn't really matter what you do as long as you enjoy it. One thing for sure is that arguing about a hobby is missing the point.
Was This Post Helpful? 2
  • +
  • -

#4 MentalFloss  Icon User is offline

  • "ADDICTED"[2:5]
  • member icon

Reputation: 526
  • View blog
  • Posts: 1,397
  • Joined: 02-September 09

Re: Different strategies for learning

Posted 25 September 2013 - 06:17 AM

I fully immerse myself in a language for like 6 months and learn every nuance and caveat I can. Then I move to something else and try to forget the other language. Then I go back to the original language with fresh eyes and see what I didn't know to look for the first time around.

So I go for specialized diversification. Your friend sounds like he just has cursory comprehension. That's not good for long.
Was This Post Helpful? 0
  • +
  • -

#5 blackcompe  Icon User is offline

  • D.I.C Lover
  • member icon

Reputation: 1150
  • View blog
  • Posts: 2,528
  • Joined: 05-May 05

Re: Different strategies for learning

Posted 25 September 2013 - 06:17 AM

I spent a lot of time in my studies learning different languages, but that came out of taking new courses mostly. Many times the language was just a vehicle to support learning the theory. I wouldn't say I "know" the language, but rather I would say I have a working knowledge of it. I never just had an itch to learn x language. Sometimes you're forced to use (not learn) a new language to implement something small, but necessary. It's recommended to learn a new language every so often to keep your skills fresh and to get a new perspective on programming. You'd be surprised how much you can learn by studying a new language. Every programmer should be exposed to functional programming and assembly language at some point in their career, because they'll teach you important concepts that you'll find useful down the road. Pure functional programming is awesome! I deeply enjoy it, but only as a hobby. Generally speaking, it should suffice to stick with one language (and anything else as needed) when first learning to design software. Once your friend starts working on or maintaining long-term projects, he or she will probably start focusing on a single language or technology stack.

In my opinion, having expertise in one set of technologies (e.g. Microsoft) should be enough solidify your continued existence as an employable developer, but if you become proficient in other stacks (e.g Java EE), then more job opportunities will be available. General software design experience carries over no matter what technologies you're using. It's becoming more and more apparent that it's necessary to continually learn new technologies to stay competitive. There's so much amazing stuff coming out all the time, especially in web development, and it's going to grow faster with time. And even if you're working on legacy stuff, you're probably at some point, going to have to utilize new technology to meet ever-changing customer demands.

This post has been edited by blackcompe: 25 September 2013 - 06:22 AM

Was This Post Helpful? 0
  • +
  • -

#6 jon.kiparsky  Icon User is online

  • Pancakes!
  • member icon


Reputation: 7570
  • View blog
  • Posts: 12,713
  • Joined: 19-March 11

Re: Different strategies for learning

Posted 26 September 2013 - 09:34 AM

I treat languages like I treat musical instruments. I pick one up and play with it, and see what I can do with it. If it's fun or useful I keep playing with it. I learn something new from each one, and each one makes me a little stronger on the others. In the end, what matters is the music, not the tool you use to make it. The tools just give you interesting ways to make different sorts of music. Likewise with programming, the important thing is to be able to reason about programs. Different languages just give you different ways to express that reasoning.
Was This Post Helpful? 0
  • +
  • -

#7 danny_kay1710  Icon User is offline

  • D.I.C Regular
  • member icon

Reputation: 28
  • View blog
  • Posts: 358
  • Joined: 27-April 08

Re: Different strategies for learning

Posted 27 September 2013 - 03:27 AM

I personally believe the hardest part isn't always the creation of software but the support of it.

It's great crafting away at something a new language and even finishing it but the work rarely stops there. Now you've said that you are hobbyists so maybe this won't be as applicable to you but when you decide on your language you've got to be sure that if you revisit your application a few months later to fix a bug that your comfortable enough in the language to not be at square one again just because the next project you did following the one your bug fixing on is in yet another new language.

It's great learning more than one language but you have to actually know and be comfortable in it before you move on in my opinion otherwise you've just kind of played with it learnt the basics and really you couldn't create AND support an application with it with any real degree of proficiency.

Don't get me wrong I am not saying don't look at other languages just you need to know the difference between being able to develop in a language against having a basic understanding of a language. I am not a C++ developer but I have a basic understanding of it - and it's because of the time I spent learning this that the penny finally properly dropped about how Object Orientated Programming should truly be applied - operator overloading was something else that just blew me away and I still don't fully understand how it works in C++ (in fact really I would have to pretty much look everything up again to write something in it) but it has allowed me to make use of it in .NET.

I have created entire PHP web applications and at a ultimately could probably support one but I know I'm weaker at that than say ASP.NET MVC 4.

It's great being able to list a long list of buzzwords on a CV (I know all of these languages etc) but don't lie to yourself when your thinking what should I do this next project in... analyse if that language is going to be a future direction for you, what level of support you want to give etc
Was This Post Helpful? 2
  • +
  • -

Page 1 of 1