3 Replies - 2512 Views - Last Post: 08 January 2014 - 09:31 AM

#1 RexGrammer   User is offline

  • Coding Dynamo
  • member icon

Reputation: 183
  • View blog
  • Posts: 785
  • Joined: 27-October 11

Choosing the proper skillset

Posted 22 December 2013 - 01:06 PM

I've taken the first few steps into the programming "ecosystem", and have gotten myself quite familiar with the .NET platform (Don't know why I picked that platform as my starting point, I honestly forgot :P/> :)/> ). I even know how (generally) the source code of the most common classes in the BCL looks like. My next step was harnessing the power of the web using ASP.NET (Seemed like a logical choice). My knowledge of ASP.NET is intermediate (WebAPIs, MVC pattern, ASPX and Razor syntax, and the other commonly used stuff). While learning ASP.NET, I also picked up a lot of front-end skills (HTML, CSS, JS/jQuery). While I was learning that, I picked up a lot of stuff not strictly related to .NET (stuff like: SQL queries, database modelling, a profound knowledge of the OOP paradigm, and some other stuff I can't think of right now :D/>).

But now, I'm looking to broaden my knowledge and plunge outside of my comfort zone of MS technologies. Now the question arises, what should I learn next? This is not a generic: what language is best type of question, please bear with me. Should I focus on the market, and learn the language that developers are most sought for? Should I take something similar to what I know and learn that (java for an example. I know it's not really that similar, but at least the syntax will be familiar to me). Or should I learn something that seems interesting and fun to me? It's quite early in my career, and I still haven't started working (I've had a couple of side-jobs, nothing long-term/serious) and have a few years before I'll "have" to start working. So there's plenty of time for me to learn more stuff. Long story cut short: should I focus on the market, my personal preferences, or just try to learn as much as I can?

This post has been edited by RexGrammer: 22 December 2013 - 01:07 PM

Is This A Good Question/Topic? 0
  • +

Replies To: Choosing the proper skillset

#2 andrewsw   User is online

  • a lovely bit of linq
  • member icon

Reputation: 6891
  • View blog
  • Posts: 28,506
  • Joined: 12-December 12

Re: Choosing the proper skillset

Posted 22 December 2013 - 01:13 PM


should I focus on the market, my personal preferences, or just try to learn as much as I can?

Go for what interests you and, yes, learn as much as you can.
Was This Post Helpful? 1
  • +
  • -

#3 cfoley   User is offline

  • Cabbage
  • member icon

Reputation: 2408
  • View blog
  • Posts: 5,044
  • Joined: 11-December 07

Re: Choosing the proper skillset

Posted 22 December 2013 - 04:09 PM

I came from the other side. I knew Java and wondered if I should learn C#. Turns out that the differences are minor enough that with only a little googling, you can write programs in one if you know the other.

The right choice for me was to learn something else. I ended up with Ruby and LISP. I only scratched the surface of both but these languages opened my eyes to different ways of thinking about programming.

To make things interesting, it looks like I might be commissioned to write a program in C# soon. Did I make a mistake by shunning C#? Only time will tell, and there will certainly be details that I need to brush up on. However, I think the knowledge I gained has given me a richer set of tools for working in any language.

When choosing something to learn for the sake of bettering yourself, something that challenges you to think differently will improve your skill set far more quickly than something close to what you already know.
Was This Post Helpful? 1
  • +
  • -

#4 dev9   User is offline

  • New D.I.C Head

Reputation: 1
  • View blog
  • Posts: 26
  • Joined: 07-January 14

Re: Choosing the proper skillset

Posted 08 January 2014 - 09:31 AM

I think the advice to just learn everything, or learn as much as you can, doesn't work for some people. It doesn't work for me. It's almost a waste of time to just wander aimlessly reading tutorials and intros to get familiar with so many things out there. Nothing wrong with that approach as a way of staying abreast of the technology world, but I think each person should have a plan that helps focus their efforts, and then stick to it so that they become, not just familiar, but actually good at what they are trying to learn.

In my opinion, the following combination is ideal if you're trying to satisfy both the marketability and general knowledge span requirements, and has been my "focus plan" at least.

-- C++
There is a whole domain of problems, products, and market where at least some working knowledge of C++ is required. It also teaches you the hard-core concepts of templates, memory management and other things that are taken care for you or are done easily in C#/Java.

-- Java, C#
Java has been in the top three as far as market demand. Most enterprise projects are done in it, and C# is in the second place. The JVM is everywhere, including the Android mobile platform. The reason you should know both is because it's impossible to pick one over the other, AND they're so similar it would really be silly to choose. Even though C# is not as popular as Java, it has a lot of features lacking in Java, such as LINQ, which borrows heavily from functional languages and once you learn it, you will appreciate how powerful and useful it is. It changes the way you think about things.

-- Clojure
And speaking of changing the way you see things, Clojure is, IMO, the best representative of the functional languages paradigm, which I think every developer needs to develop familiarity with. If someone wants to replace its place on this list with something like F#, or Haskell, or Lisp, I won't argue with them. You can't go wrong. I just think if you're going to spend the effort, you might as well focus on Clojure because it's based on the JVM, which makes it more marketable than, say, Haskell. Note: F# is a .NET language, so if you're leaning that way, you get the benefit of using LINQ, but LINQ is already incorporated in C# now (C# steals all the best ideas of F#, making the latter almost useless to learn).

-- Javascript
It's ubiquitous. It's hard to escape it. And it's easy to learn just enough of it to be somewhat productive when it comes to web development. Doesn't make sense for anyone to ignore it, especially that it's being used in more and more modern applications and platforms even outside of just websites.
Was This Post Helpful? 0
  • +
  • -

Page 1 of 1