No programming experience, need some guidance choosing language.

Page 2 - Seeking answers? Join the AnandTech community: where nearly half-a-million members share solutions and discuss the latest tech.

Luzah

Senior member
Jul 22, 2007
520
0
71
I hope this doesn't come off as trying to crush your dreams comment, but just be prepared that some people won't hire people that don't have degrees, and some companies won't even give you an interview. I also think there is a degree of agesim in the software industry. If you do go to school, it will more difficult coming into a working world the later it happens. In that regard, you are at a disadvantage.

In terms of advice on where to start, it might be worth looking at iTunes University to see if there are any classes available for you can download. Something like:

http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=405934910

or http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=384232896

It looks like there is a lot of stuff on there. That will give some information on some of the important topics regarding object oriented design and stuff like that. This is all stuff you are going to need to know.


Oh right! I don't intend to just waltz into any old company, and throw down a few language codes and expect to get hired. I have college on my itinerary as well as learning how to program. I just would like to get a head-start in the field, and I think that by learning how to program before I even reach college will help me pass courses and what-not.
 

Cogman

Lifer
Sep 19, 2000
10,280
131
106
Oh right! I don't intend to just waltz into any old company, and throw down a few language codes and expect to get hired. I have college on my itinerary as well as learning how to program. I just would like to get a head-start in the field, and I think that by learning how to program before I even reach college will help me pass courses and what-not.

And it is a great idea. Gaining a love for programming now is something that companies will love to see when you go for a job.
 

Luzah

Senior member
Jul 22, 2007
520
0
71
And it is a great idea. Gaining a love for programming now is something that companies will love to see when you go for a job.

I have big time respect for programmers. The knowledge they had stored in their brain about languages is just great! As I said in my OP, I dabbled a tiny bit in VB3 -years- ago and successfully made a pop-up box, but that was a very long time ago. I think with all of today's helpful forums (such as here), I can really get a leg-up in the programming field AND figure out which language I should start with. Unfortunately, my ability to retain knowledge has eluded me for years. In order for me to grasp a concept, I have to do things over and over, and keep doing the tasks like that, in order to soak up the learning experience.

However, with that being said I am ready to take the plunge and give my brain a long over-due workout! I really appreciate everyone's help on this forum, and I promise not to bug you guys too much with mundane questions.

Luzah
 

Cogman

Lifer
Sep 19, 2000
10,280
131
106
However, with that being said I am ready to take the plunge and give my brain a long over-due workout! I really appreciate everyone's help on this forum, and I promise not to bug you guys too much with mundane questions.

Luzah

No no, bug us the the mundane questions, please! This forum needs more activity :D
 

Luzah

Senior member
Jul 22, 2007
520
0
71
Haha Cog! I am actually going to get started right away with vb.net, so is there a particular website that you can offer that has good learning guides/free tools to help? I am completely broke, and cannot afford Visual Studio :(
 

Cogman

Lifer
Sep 19, 2000
10,280
131
106
Haha Cog! I am actually going to get started right away with vb.net, so is there a particular website that you can offer that has good learning guides/free tools to help? I am completely broke, and cannot afford Visual Studio :(

As was mentioned, Visual Studios express edition is free to download and use
http://www.microsoft.com/express/Downloads/#2010-Visual-Basic

As for learning guides, I really don't have any good guides for VB. Like I said earlier, I really just don't like the language (and so haven't really looked up a lot of resources for it).

The MSDN is pretty useful reference considering VB.Net is a .Net language (and so it has lots of references and stuff in there.)
http://msdn.microsoft.com/en-us/library/ff361664.aspx

Maybe give this site a try for tutorials.
http://www.homeandlearn.co.uk/net/vbnet.html
 

Luzah

Senior member
Jul 22, 2007
520
0
71
Thank you so very much Cogman! You and everyone else on this forum have been so helpful, and I really appreciate that! You guys rock!!
 

Markbnj

Elite Member <br>Moderator Emeritus
Moderator
Sep 16, 2005
15,682
14
81
www.markbetz.net
Oh right! I don't intend to just waltz into any old company, and throw down a few language codes and expect to get hired. I have college on my itinerary as well as learning how to program.

At most shops, ultimately, you can get hired if you can impress the technical guys that do the interviewing. Larger corporations with established HR policies are the places where a lack of a degree can rule you out up front, and even there you can often get by if you're really good and have a specialty they are in need of. A degree is a good idea in any case, and you'll never regret getting yours, I'm sure. But I would almost say you should pursue a professional level of competence in programming independently of your degree.
 

Cogman

Lifer
Sep 19, 2000
10,280
131
106
At most shops, ultimately, you can get hired if you can impress the technical guys that do the interviewing. Larger corporations with established HR policies are the places where a lack of a degree can rule you out up front, and even there you can often get by if you're really good and have a specialty they are in need of. A degree is a good idea in any case, and you'll never regret getting yours, I'm sure. But I would almost say you should pursue a professional level of competence in programming independently of your degree.

Yeah, from what I've heard, most schools really don't teach programming very well.
 

Luzah

Senior member
Jul 22, 2007
520
0
71
At most shops, ultimately, you can get hired if you can impress the technical guys that do the interviewing. Larger corporations with established HR policies are the places where a lack of a degree can rule you out up front, and even there you can often get by if you're really good and have a specialty they are in need of. A degree is a good idea in any case, and you'll never regret getting yours, I'm sure. But I would almost say you should pursue a professional level of competence in programming independently of your degree.

Thank you Mark! I will absolutely do just that. I will most likely do online courses, enrolling in the local C.C. I'm pretty excited to get started, but I know that excitement will turn to frustration soon enough. I just need to bear down and rough it out!
 

mosco

Senior member
Sep 24, 2002
940
1
76
Thank you Mark! I will absolutely do just that. I will most likely do online courses, enrolling in the local C.C. I'm pretty excited to get started, but I know that excitement will turn to frustration soon enough. I just need to bear down and rough it out!

Make sure you check out those iTunes U classes. Some of them ever have the homework and assignments and they are all free. These are the exact classes you would need to take and some major universities have some free classes on their, like Standford.

Enrolling in a CC is fine, but to be honest, a lot of people are going to want to see core CS classes from a 4 year university. I feel like not having a degree from a four year university is more exceptable in a in a more established tech environment like Boston, California, Seattle, etc.

One thing that people really like to see is participation in open source projects. Get familiar with places like Github. Maybe try joining a popular open source project in a QA type roll where you test builds or features and submit bugs. Contribute to open source project Wiki's and stuff like that. And as you get more familiar with things like Object Oriented Design and languages, you can maybe start contributing code to the projects.
 

brandonb

Diamond Member
Oct 17, 2006
3,731
2
0
http://www.homeandlearn.co.uk/net/vbnet.html

That website gets you going with vb.net.

I don't particularly care for it, because it starts with Windows Forms. Which is a technology which is being replaced by WPF, and I believe learning the language first (console app). Then move into either forms or WPF for the GUI part. So it's somewhat backwards, but this is probably the funnest (and easiest) way to get going.
 

Luzah

Senior member
Jul 22, 2007
520
0
71
Thank you all for the great input! I will try my best to succeed in the endeavor, and I do feel that you all pushed me in the right direction! Again, thank you.
 

Luzah

Senior member
Jul 22, 2007
520
0
71
Update:

I tried vb.net out for a couple of days, and I can honestly say that it didn't feel "fulfilling" to me, if that makes any sense? It almost felt sort of "dumbed-down" as compared to other languages. That may be what I need, not knowing a lick of language, but I just didn't feel challenged enough, nor felt any type of reward for completing the practice tutorials.

SO, I dropped vb.net and moved onto C# and I must say.. Wow! This is exactly what I want/need! I feel as though I get a sense of self-accomplishment, even doing the practice tutorials! Sure, my hand is being held by the author through-out the steps but the way the code is written seems more "behind the scenes" if you will, compared to vb.net. I've been doing the tutorials on the homeandlearn.co.uk website, and I can can honestly say I am having fun learning C#. I did run into a few snags here and there, and only one of them I couldn't figure out (it's the switch and case statements), but I really feel that I gained some headway!

I know you guys could probably care less, but I really wanted to come back to thank everyone who helped me get to this part! I now know about integers, strings, variables, double and float variables, methods, etc etc.. and I'm pretty darn excited to know about these things! I've got a great deal ahead of me to learn, but I promised myself I will see this thru!

Thanks again everyone!!!


Luzah
 
Last edited:

Cogman

Lifer
Sep 19, 2000
10,280
131
106
Update:

I tried vb.net out for a couple of days, and I can honestly say that it didn't feel "fulfilling" to me, if that makes any sense? It almost felt sort of "dumbed-down" as compared to other languages. That may be what I need, not knowing a lick of language, but I just didn't feel challenged enough, nor felt any type of reward for completing the practice tutorials.

SO, I dropped vb.net and moved onto C# and I must say.. Wow! This is exactly what I want/need! I feel as though I get a sense of self-accomplishment, even doing the practice tutorials! Sure, my hand is being held by the author through-out the steps but the way the code is written seems more "behind the scenes" if you will, compared to vb.net. I've been doing the tutorials on the homeandlearn.co.uk website, and I can can honestly say I am having fun learning C#. I did run into a few snags here and there, and only one of them I couldn't figure out (it's the switch and case statements), but I really feel that I gained some headway!

I know you guys could probably care less, but I really wanted to come back to thank everyone who helped me get to this part! I now know about integers, strings, variables, double and float variables, methods, etc etc.. and I'm pretty darn excited to know about these things! I've got a great deal ahead of me to learn, but I promised myself I will see this thru!

Thanks again everyone!!!


Luzah

Glad to hear it.

What are you finding difficult with switch/case statements (and please, post some code examples of what you find difficult if you can).
 

Luzah

Senior member
Jul 22, 2007
520
0
71
Sure Cogman, here's the code I was working on in the calculator tutorial:

private void btnEqual_Click(object sender, EventArgs e)

{
total2 = total1 + double.Parse(txtDisplay.Text);
txtDisplay.Text = total2.ToString();

total1 = 0;
switch (theOperator)
{

case "+":
total1 = total1 + double.Parse(txtDisplay.Text);
break;
case "-":
total1 = total1 - double.Parse(txtDisplay.Text);
break;
case "*":
total1 = total1 * double.Parse(txtDisplay.Text);
break;
case "/":
total1 = total1 / double.Parse(txtDisplay.Text);
break;
}

}

Now, I should explain that the author had me do if...else with bool commands such as:

bool minusButtonClicked = false;
bool plusButtonClicked = false;

etc etc.. and that worked perfectly. I was able to use double for a more precise calculation, allowing me to use decimals in the equation. Everything worked wonderfully, and I could do a simple 3*12*30-5 etc etc equation, and it would give me the correct number.

He then told me to use the switch method, with the case variables.. and that is where everything went haywire. the switch command kept coming up and an invalid token, no matter where I put it (I finally figured it out to where I didn't have any squiggly red lines), but now it only adds correctly, and nothing else. I try to add and then subtract, and it comes up with numbers that I -know- are not right, and divide and multiply do not even work anymore. I finally gave up on it, and moved on to the next chapter :(
 

Krioni

Golden Member
Feb 4, 2000
1,371
0
71
If you have access to VS 2010, then I would certainly recommend C# as a good starting point as opposed to VB.NET.

One of the primary reasons is that you'll be learning C-ish syntax, which will generally apply to many languages (C, C++, C#, Java, etc.). They certainly aren't all the same, however, many of them have C as their ancestor or inspiration. So things like using curly brackets, semi-colons, etc.

Personally, I use C# nearly every day and love it. I have experience with C, C++, C#, VB, VB.NET, ColdFusion, ASP, ASP.NET, etc. I feel so strongly *against* VB languages that I have made it a personal mission to write out all of the VB code in the company for which I work (a fortune 750 company). As a side note, I manage a team of 12 developers in my day job.
 

Luzah

Senior member
Jul 22, 2007
520
0
71
Actually Krioni, I downloaded the VS 2010 Express edition, and I am currently trying to learn c#! I tried out vb.net for a few days, and as I stated earlier.. I just didn't feel that "self-accomplishment" aspect of coding like I do learning c#. I'm using a pretty decent guide, and I'm having a blast learning the language. I get a sense of more in-depth coding in this language, compared to vb.net and I think that is what I was searching for!

I appreciate your input as well! Thank you.


Luzah
 

Cogman

Lifer
Sep 19, 2000
10,280
131
106
Sure Cogman, here's the code I was working on in the calculator tutorial:

PHP:
private void btnEqual_Click(object sender, EventArgs e)
            
        {
            total2 = total1 + double.Parse(txtDisplay.Text);
            txtDisplay.Text = total2.ToString();

            total1 = 0;
           switch (theOperator)
            {

                case "+":
                    total1 = total1 + double.Parse(txtDisplay.Text);
                    break;
                case "-":
                    total1 = total1 - double.Parse(txtDisplay.Text);
                    break;
                case "*":
                    total1 = total1 * double.Parse(txtDisplay.Text);
                    break;
                case "/":
                    total1 = total1 / double.Parse(txtDisplay.Text);
                    break;
            }  
            
        }

Now, I should explain that the author had me do if...else with bool commands such as:

bool minusButtonClicked = false;
bool plusButtonClicked = false;

etc etc.. and that worked perfectly. I was able to use double for a more precise calculation, allowing me to use decimals in the equation. Everything worked wonderfully, and I could do a simple 3*12*30-5 etc etc equation, and it would give me the correct number.

He then told me to use the switch method, with the case variables.. and that is where everything went haywire. the switch command kept coming up and an invalid token, no matter where I put it (I finally figured it out to where I didn't have any squiggly red lines), but now it only adds correctly, and nothing else. I try to add and then subtract, and it comes up with numbers that I -know- are not right, and divide and multiply do not even work anymore. I finally gave up on it, and moved on to the next chapter :(

This piece of code that you have posted looks fine. So I'm going to have to assume that the error is happening either at the place where you give "theOperator" a value or it is somehow related to how you are handling total1.

Also, you should realize that by the nature of doubles, things don't always work as you would expect them to work. For example, if you do 1 + 0.1 you won't get 1.1, instead you'll get something like 1.100000000000001. This has to do with the nature of how a decimal is represented in a computer. The closest example of what is going on in a computer is to think of what happens when you add the fraction 1/3 + 1/3, the right answer is 2/3, but if you where to write out the decimal you would have 0.6666666666666 which isn't a true representation of 2/3. This is sort of what is going wrong when a computer adds 0.1 to anything using "floating point" math.
 
Last edited:

Luzah

Senior member
Jul 22, 2007
520
0
71
Cogman

Would it make more sense to use float instead of double then, or would it really matter all that much? I used double because the instructor said it can handle the most number in a string.
 

Cogman

Lifer
Sep 19, 2000
10,280
131
106
Cogman

Would it make more sense to use float instead of double then, or would it really matter all that much? I used double because the instructor said it can handle the most number in a string.

Floats and doubles suffer from the same problem. Doubles are just floats with more more bits to have higher accuracy.

1 + 1 and 1 - 1 should result in the correct answer. 1.5 + 1.5 and 1.5 - 1.5 should also result in the correct answer. If it doesn't, then this isn't really a problem with using a double.
 

Luzah

Senior member
Jul 22, 2007
520
0
71
Ahhhh!!! Roger that! I see what you're saying now. I would've posted the whole code, but to be honest it's a tad long and I already moved on to the next lesson. I wouldn't mind knowing why the switch didn't work like it was supposed to, and the calculator doesn't work right anymore but I'm not going to lose sleep over it :)

Thanks so much for the guidance Cogman!
 

Cogman

Lifer
Sep 19, 2000
10,280
131
106
Ahhhh!!! Roger that! I see what you're saying now. I would've posted the whole code, but to be honest it's a tad long and I already moved on to the next lesson. I wouldn't mind knowing why the switch didn't work like it was supposed to, and the calculator doesn't work right anymore but I'm not going to lose sleep over it :)

Thanks so much for the guidance Cogman!

The switch statement is working correctly. It is the code that comes before or after the switch statement that is some how messing up.

What might be helpful to fixing the problem is inserting breakpoints into the code and stepping through the code, looking at the values contained in each of your variables.

I would suggest not just moving on as debugging code is a valuable tool to have when programming. It will teach you how to find errors and give you a better understanding of how the code is working.
 

Luzah

Senior member
Jul 22, 2007
520
0
71
namespace WindowsFormsApplication1
{
public partial class Calculator : Form
{
public Calculator()
{
InitializeComponent();
}
double total1 = 0;
double total2 = 0;
private void btnOne_Click(object sender, EventArgs e)
{
txtDisplay.Text = txtDisplay.Text + btnOne.Text;
}

private void btnTwo_Click(object sender, EventArgs e)
{
txtDisplay.Text = txtDisplay.Text + btnTwo.Text;
}

private void btnThree_Click(object sender, EventArgs e)
{
txtDisplay.Text = txtDisplay.Text + btnThree.Text;
}

private void btnFour_Click(object sender, EventArgs e)
{
txtDisplay.Text = txtDisplay.Text + btnFour.Text;
}

private void btnFive_Click(object sender, EventArgs e)
{
txtDisplay.Text = txtDisplay.Text + btnFive.Text;
}

private void btnSix_Click(object sender, EventArgs e)
{
txtDisplay.Text = txtDisplay.Text + btnSix.Text;
}

private void btnSeven_Click(object sender, EventArgs e)
{
txtDisplay.Text = txtDisplay.Text + btnSeven.Text;
}

private void btnEight_Click(object sender, EventArgs e)
{
txtDisplay.Text = txtDisplay.Text + btnEight.Text;
}

private void btnNine_Click(object sender, EventArgs e)
{
txtDisplay.Text = txtDisplay.Text + btnNine.Text;
}

private void btnZero_Click(object sender, EventArgs e)
{
txtDisplay.Text = txtDisplay.Text + btnZero.Text;
}

private void btnClear_Click(object sender, EventArgs e)
{
txtDisplay.Clear();
}

string theOperator;

private void btnPlus_Click(object sender, EventArgs e)
{
total1 = total1 + double.Parse(txtDisplay.Text);
txtDisplay.Clear();

theOperator = "+";
}
private void btnEqual_Click(object sender, EventArgs e)

{
total2 = total1 + double.Parse(txtDisplay.Text);
txtDisplay.Text = total2.ToString();

total1 = 0;
switch (theOperator)
{

case "+":
total1 = total1 + double.Parse(txtDisplay.Text);
break;
case "-":
total1 = total1 - double.Parse(txtDisplay.Text);
break;
case "*":
total1 = total1 * double.Parse(txtDisplay.Text);
break;
case "/":
total1 = total1 / double.Parse(txtDisplay.Text);
break;
}

}

private void btnPoint_Click(object sender, EventArgs e)
{
txtDisplay.Text = txtDisplay.Text + btnPoint.Text;
}
private void btnMinus_Click(object sender, EventArgs e)

{
total1 = total1 - double.Parse(txtDisplay.Text);
txtDisplay.Clear();


theOperator = "-";

}

private void btnDivide_Click(object sender, EventArgs e)
{
total1 += total1 / double.Parse(txtDisplay.Text);
txtDisplay.Clear();

theOperator = "/";

}

private void btnMultiply_Click(object sender, EventArgs e)
{
total1 = total1 * double.Parse(txtDisplay.Text);
txtDisplay.Clear();

theOperator = "*";
}
}
}

A long post, I know.. I poured over my code for almost an hour, trying to find the problem.. and I just didn't see it anywhere. Maybe your expertise can help??