# Becoming a software engineer



## tsujp (Mar 2, 2008)

Hey guys,

My goal in life is to become a software engineer or computer engineer.

This may change, but regardless I would like the following anyway, I just thought that may or may not be useful to know the above when suggesting things.

So basically I am looking for my first programming language to learn, and any certifications I can get from Australia (since I live here) before going to university etc...

I was thinking:

C++
C
VB.NET
But I am not certain, which is why I am here.

If you know a good language I can learn first or w/e, would you be able to provide details on any sites that have tutorials or eBooks/books on the language.

If you know of any certifications I should get would you be able to provide the websites giving such information. And why I should get it.

I have done some research on the internet, however, I would also like your opinion as well


----------



## Ninjaboi (Dec 27, 2010)

Hello Fluidz.

I personally would recommend either Java or Python for beginner programming. They are easy to learn the syntax of, and provide great overhead from the low-level objectives you'd have to learn later on. Afterwords, I'd say work with other languages and become familiar with the advantages and disadvantages of them.

I made a post called Getting Started that you might be interested in looking at for resources. If you'd like to bookmark it, I'd recommend it as I'm already gathering much more information to pack into it and request a change/revision. It's fine as it is, but there is so much more I never touched on or require to elaborate on.

As for certifications, I can't think of any programming certifications that would be highly noted. You could try looking here if you'd like. Most employers won't judge you by these certifications though, and they don't judge your programming skills based on them.

If you have any other questions, any at all, please ask away. I'm dying for more questions over programming being asked here at TSF.


----------



## tsujp (Mar 2, 2008)

I have already done about two things in Java so that is good 
I can do a Hello World lols.

I am using Eclipse as the IDE, is that better than NetBeans of more newbie friendly? Or should I be using a different one as a beginner all together?

An I read that a compiler is a program that converts source language into another target language.

Does that mean you write it in Java and it converts it into a low level language?

Also, would I be able to buddy you and ask more questions as I need to?


----------



## Ninjaboi (Dec 27, 2010)

Java uses both a compiler and an interpreter. It does it in these steps:

1. You write the code.
2. You compile the code in the compiler, which transforms it into byte-code.
3. The interpreter interprets the byte-code into machine language.

I wouldn't recommend one IDE over another, everyone has their preference. If you want my preference, I'd choose Eclipse.

As for the buddy and help question, I'd love to do so lol. I however have to remind you that most of your questions should be openly posted in the Programming section of the forum, which I respond to and check the most. You'll get help quickly, usually within 24 hours of your post. Sometimes I don't get to them in a day or two though, and sometimes the question requires some time to answer.

Anyways, I'm sending friend request now, cheers!


----------



## tsujp (Mar 2, 2008)

I will post them openly yeah 

Thanks for the help, I am going to start that later today.


----------



## Redeye3323 (Sep 20, 2009)

From what I heard, learning Java before one of the harder languages isn't recommended.

This is because moving from Java to C, C# or w/e tends to be much harder then vice-versa.

Python would be a good first language to get up-to-date on. Especially as it is getting more and more popular.

Thats my 2-cent and I am nowhere near a programmer level (I have coded a stopwatch in C#, thats about it xD)


----------



## tsujp (Mar 2, 2008)

Hmmmm,

Thanks Redeye, I will look into that 

Unless anyone else knows more


----------



## Redeye3323 (Sep 20, 2009)

That is what I heard from my college teachers (one can program very well).

I am not sure 100% if that is true for everyone, but it sounds likely to me


----------



## Ninjaboi (Dec 27, 2010)

You do have a point, it's harder to move from Java to say C++ than moving from C++ to Java. However, that applies to any high level to medium/low level conversion. Java is a high level language, C++ being a mid/low level language. If you already know the low-level stuff, going higher up just makes your time easier. It's all about simplicity vs control. Higher level languages offer more simplicity, lower level languages offer more control.

Your college teacher is right about that, however I feel that you may of misunderstood what you were being told. I think your teacher was trying to say that if your planning on going into a lower level language in the end, you'd save yourself hassle by simply going to that language directly, rather than taking a higher level language and moving downward.


----------



## tsujp (Mar 2, 2008)

So I should stick with Java for now?


----------



## Ninjaboi (Dec 27, 2010)

Depends, what kind of software do you plan on releasing/creating? What platform(s) do you intend to work on and for your software to work on? Do you prefer simplicity or control?


----------



## tsujp (Mar 2, 2008)

I have no idea at the moment. All I know is that I want to make software.

Would you be able to suggest some languages related to kinds of software?

Platforms would be mixed, not sure though.


----------



## Ninjaboi (Dec 27, 2010)

Fluidz said:


> I have no idea at the moment. All I know is that I want to make software.
> 
> Would you be able to suggest some languages related to kinds of software?
> 
> Platforms would be mixed, not sure though.


:laugh: a bit unsure it sounds like. No problem.

Java would be for simplicity and portability. Easy to use, fairly easy to learn, and the code you make will run on several platforms such as Windows, Mac, Linux, etc. It's easy to create GUI programs ( graphical programs ) using it, and will make your life easier if you intend to do so. It has drawbacks, such as less control over low-level things such as memory management. It also performs slower than other languages, so for system-intense applications, you might feel the performance drag ( a good example would be a game like Minecraft ).

Overall, Java would be great for applications that don't require heavy system resources. It's also great for applications you might want to embed into an HTML project for the web.

As far as that goes, it would be quite tedious to mention what other languages are good for making. They are made for a purpose, some for mathematical calculations and programs, others for game development, some are just general programming. You'll have to use Google on this one, it's your friend ( even if at times you get a redirecting virus lol ).

The main platform to program applications still remains to be Windows. However, breaking from the norm is not uncommon. Many developers make their software for both Windows and Mac ( Linux seems to get left out nowadays ). I personally program for Windows and Linux. I don't hate the Mac or anything, just don't want to have to make applications for it :grin:.


----------



## tsujp (Mar 2, 2008)

Alrighty. Well I guess I will still start Java as my first then, since it is easy as you put it . Then I might ask for advice from you as and when the time comes if I am still unsure on what to do, or maybe just for clarification 

Oh I have had Minecraft since very early Alpha stage and it memory leaks like there is no tomorrow.

A lot of server providers initially starting hosting servers for Minecraft, but when they found out it was resource hungry they stopped. Just goes to show all they anticipate for is bandwidth, in my opinion. So you have to host the server yourself , or off a box you own (at least in Australia that is).

Is Eclipse capable of doing GUI (haven't had a chance to mess around other than Hello World currently)? I have used VB.Net quite a bit so I am somewhat familiar with how to control things with GUIs, if Java manages it similarly. 

Thanks for the replies mate, I greatly appreciate them all


----------



## Ninjaboi (Dec 27, 2010)

Your welcome, I love answering these questions honestly lol. When I say it's 'easy', I mean easy compared to other languages. Some are easier than it, several are harder.

I mentioned Minecraft because somebody I know mentioned it and talked about how it has terrible visuals, not many features, yet lagged for him even when he was playing on some low settings. Taking a look, I notice rather quickly that the visuals weren't great, though I disagreed with the features ( looks like a fun game ). I thought for a second and wondered why would it lag for him, as it doesn't look like anything intensive. Then when I looked at the documentation, I read it was programmed in Java and it all made sense.

In short, the processor is doing most of the work ( a great video card won't do much, as it's barely touched in comparison ) and performing all those tasks at the same time would, especially when not programmed efficiently, will cause the program to be resource-hungry. If Minecraft was programmed in say Ada, and done so with efficiency in mind, that same person I mentioned would be able to play it near if not on highest performance.

Not quite sure what you asking by "Is Eclipse capable of doing GUI?" but I'm guessing your talking about a drag-and-drop GUI designer right? I don't think Eclipse has this feature, but I know NetBeans does. You could however do the GUI programming in the code itself, rather than getting generated code from a GUI designer. It takes longer yes, but it's good to learn.


----------



## tsujp (Mar 2, 2008)

Minecraft runs fine for everyone I know, including myself (about 200+FPS) 
Then again we are all gamers with powerful PCs.

It's visuals are nice for me, since they are unique. Even though I am addicted to the GFX of the upcoming BF3, Crysis 2 and previous BFBC2. But I will stop side tracking the thread.

About the GUIs, do any of those links in your 'getting started' thread talk about GUIs from code? (I am currently typing this on my iPhone and I am on 5%, no time to check D=).

Once I learn GUI from code is it better to do it that way or then use a drag and drop?

I am taking a random guess that drag and drop would be good for some of the main parts since time is a factor in the industry?


----------



## Ninjaboi (Dec 27, 2010)

That's absolutely right about your last statement. Time is money lol. Once you learn GUI programming using Java, you should proceed to a drag and drop ( unless you enjoy direct code ). Learning the code first gives you an advantage because if something doesn't work in the program that you dragged and dropped, or you want to add a feature more advanced that the interface doesn't provide, you can just go to the code and do just that.

I do like the unique visuals as well, but some people are just not satisfied lol. The guy I mentioned has a system with an integrated video chip, as well as a 1.4Gh processor. Not a powerful system. You won't feel the effects of using Java as a programming language until you either have a very resource-hungry application, or when resources are low. That's why many who use it don't care lol.

The links I provided in that thread do provide information on the basic GUI programming. However, I have a link I didn't put on the thread ( yet ) that does provide great information:

Here.

I'd suggest looking at that.

I might as well go off-topic a bit and say I'm also a bit excited for the upcoming BF3 .


----------



## tsujp (Mar 2, 2008)

Awesomesauce.

Well I will continue learning Java for now and come back and ask more questions when I need to.

Thanks again


----------



## Ninjaboi (Dec 27, 2010)

No problem, happy coding!


----------



## jassmine12 (Mar 14, 2011)

That's really a great thing to do..


----------



## hello121 (Mar 22, 2011)

There are numerous university rankings sites on the Internet which are geared towards helping students like www.onlineuniversityrankings.com


----------



## Redeye3323 (Sep 20, 2009)

That link doesn't work.

It sounds like an American thing anyway, he's a Countryman of me  [England ftw xD]

Here is a good guide (though it is the guardian xD )

University guide | University league tables for 2011 | Education | guardian.co.uk


----------



## tsujp (Mar 2, 2008)

Redeye3323 said:


> That link doesn't work.
> 
> It sounds like an American thing anyway, he's a Countryman of me  [England ftw xD]
> 
> ...


I am in Australia Redeye 

Silly nanny!

Its the thought that counts (sometimes)


----------



## Redeye3323 (Sep 20, 2009)

Oh, I remember now 

Your origins are English but your down under


----------

