2 Replies - 1277 Views - Last Post: 12 June 2012 - 07:19 PM

#1 Learn4Life  Icon User is offline

  • New D.I.C Head

Reputation: 0
  • View blog
  • Posts: 10
  • Joined: 14-April 12

Where to start Software Development

Posted 27 May 2012 - 11:39 PM

Hi,

I am currently struggling about what to learn first. There are so many technologies out there that it is hard to choose where to start. So I would like to ask the following question: Let's say you give somebody an advice about how to start right from scratch, no experience, nothing! Which direction would you recommend? The goal is RIA development, commercial software development, and mobile development; furthermore, a path of learning that can be easily extended and build up upon, a repertoire with strong background. Because I don't know where to start, I went from Java to C++, Python, xml, xaml, C#, Java FX. As soon as I have an idea to produce something for tryout, I encounter a new technology to learn in order to produce that. Thank you for your time, I really appreciate it.

-Daniel

Is This A Good Question/Topic? 0
  • +

Replies To: Where to start Software Development

#2 Oler1s  Icon User is offline

  • D.I.C Lover
  • member icon

Reputation: 1395
  • View blog
  • Posts: 3,884
  • Joined: 04-June 09

Re: Where to start Software Development

Posted 28 May 2012 - 10:39 AM

> Because I don't know where to start, I went from Java to C++, Python, xml, xaml, C#, Java FX. As soon as I have an idea to produce something for tryout, I encounter a new technology to learn in order to produce that.

Either you have technical requirements that constrains and prioritizes your options, or you don't. When you have multiple options that are all possible, you pick one that looks appealing to you. It's as simple as that.
Was This Post Helpful? 0
  • +
  • -

#3 ulent  Icon User is offline

  • New D.I.C Head

Reputation: 3
  • View blog
  • Posts: 11
  • Joined: 12-June 12

Re: Where to start Software Development

Posted 12 June 2012 - 07:19 PM

Hey Daniel. I think I know what you mean, a few years I ago I was asking similar questions.

From my experience, it depends what you want to/need to do and how fast you need to do it. If you're looking for a really good grounding in software engineering, get into something like C or C++ (or assembler if you're really keen). Although it may not be directly relevant to where you ultimately want to end up, it'll give you a much deeper understanding of what's going on in the computer than you'll get via C#.Net or Java.

The reason is essentially you're closer to hardware, so you learn about how memory manipulation works, how pointers work, what the mystical garbage collector in Java/.Net is doing (and what happens when you don't).

I'd definitely recommend getting a *good* book if you really want to learn a language. I've learnt technologies both online and from textbooks, and by book is definitely my preference. The reason is that because they're a major source of income for the author, the author will generally put months/years into writing it very carefully and comprehensively, and it's therefore a lot more fluid and covers a broader spectrum of the language.

I'm not saying blogs/tutorials aren't a good place to learn technology (in fact - I joined these forums because I came here looking for a tutorial), but for a *base* understanding of a topic, you can't beat a book. The downside is that they can't be iterated on quickly, so they may be missing some of the latest technology, but the core concepts and good programming practices should be sound (remember, I said a *good* book).

I'd then to learning something like Java or C#.Net (or VB.Net if you're that way inclined). The best advice I can give on which to choose is to browse job listings and look at what skills they're after. For example, I had a background in Java, but a lot of the jobs I ultimately wanted to end up with were after C++/C#.Net programmers, so those are the languages I've focused on since then.

Another language worth looking at if you want to get into mobile development is Objective-C, used for iPhone dev. I don't have any experience in this world, but again it's a case of checking out job listings and checking out what they're after.

Finally, there are heaps of articles online about this topic, so it's worth having a look around for some of them as well. Please don't take my word as gospel - I'm just here to do some learning too, although hopefully some of that might help :)
Was This Post Helpful? 1
  • +
  • -

Page 1 of 1