Personal Development for Smart People Forums

Personal Development for Smart PeopleTM Forums

 

Go Back   Personal Development for Smart People Forums > Personal Development > Technology & Technical Skills

Technology & Technical Skills Computer skills, hardware, software, internet topics, gadgets, programming


Welcome to the Personal Development for Smart People Forums, the place for lively, intelligent discussion of all personal growth issues -- physical, mental, financial, social, emotional, spiritual, and more.

You're currently viewing as a guest, which gives you limited read-only access. By joining our free community, you'll be able to post your own messages, access many members-only features, see the new messages posted since your last visit, and of course remove this header message. Registration is fast, simple, and free, so please join today.

If you arrived here from a search engine, you may want to explore the main site first, which includes hundreds of deep and insightful articles on a variety of personal development topics.
Reply
 
Thread Tools Display Modes
Old 10-30-2009, 11:47 PM   #1 (permalink)
Senior Member
 
Join Date: Feb 2008
Posts: 555
SomeRandomGuy is on a distinguished road
Default Learning a Programming Language - Suggestions?

I am considering learning a programming language. I do software testing for a living, and it would be helpful to be able to write some of my tools. The primary language used in the company is C# .NET, so I thinking of starting there.

I have basically no experience with programming. I am experienced with T-SQL and have quite a bit of experience using the .Net Regular Expressions. Other than that, I started a C# tutorial once, but didn't get very far into it.

For those of you with experience, would C# .NET be a good place to start, since that is what I would likely be using for my job? Or is there a better starting point?

I appreciate any suggestions of advice.
__________________
Random thoughts from Some Random Guy
SomeRandomGuy is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 10-30-2009, 11:56 PM   #2 (permalink)
Senior Member
 
JustinPopovic's Avatar
 
Join Date: Sep 2008
Location: Ontario
Posts: 157
JustinPopovic is on a distinguished road
Default

Have you looked into any software testing automation tools like Mercury or Rational Software? There are many others as well. Since you are a tester, you could record your test scripts using the software and the automation tool would create the code for you.

You could then review the code and sort of "reverse engineer" how it was developed. I learned quite a bit about Basic programming when I was testing applications using Rational Robot.

Just a suggestion.

Hopefully someone with C# experience can chime in here as well.
JustinPopovic is online now  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 10-31-2009, 12:42 AM   #3 (permalink)
Senior Member
 
Join Date: Feb 2008
Posts: 555
SomeRandomGuy is on a distinguished road
Default

Unfortunately the company I work for doesn't place a lot of importance on proper software testing, so getting approval to buy any automated tools isn't very easy. That is one of the main reasons I am interested in learning to create some of my own tools and utilities.
__________________
Random thoughts from Some Random Guy
SomeRandomGuy is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 10-31-2009, 05:51 AM   #4 (permalink)
Junior Member
 
Join Date: Jun 2009
Posts: 23
klystr0n is on a distinguished road
Default Learn by doing -> C -> C#

Best way to learn is by actually coding, not by reading some book.

Ideally you should start from C and then move to C#. C is a more fundamental language and will give you better depth. C# helps in developing quick tools but the grounding that C gives is invaluable.
__________________
A casual stroll through the lunatic asylum shows that faith does not prove anything. Friedrich Nietzsche
klystr0n is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 10-31-2009, 11:24 AM   #5 (permalink)
Senior Member
 
Join Date: Aug 2007
Posts: 138
hawkal is on a distinguished road
Default

Quote:
Originally Posted by klystr0n View Post
Best way to learn is by actually coding, not by reading some book.

Ideally you should start from C and then move to C#. C is a more fundamental language and will give you better depth. C# helps in developing quick tools but the grounding that C gives is invaluable.
While I agree that C is a more fundamental language. I do not think learning C would be effectively beneficial to learn C#.

C# is an object orientated language similar to Java. C is not object orientated and while you could learn some programming principals from learning C it still wouldn't justify learning it when you could dive right into C#. As I said before C# is similar to Java, and Java is often taught as a first language to computer science students.

Examples
Code:
// Hello World in Microsoft C# ("C-Sharp").

using System;

class HelloWorld{
    public static int Main(String[] args){
        Console.WriteLine("Hello, World!");
        return 0;
    }
}
Code:
// Hello World in Java

class HelloWorld {
  static public void main( String args[] ) {
    System.out.println( "Hello World!" );
  }
}
So if I were you I would just get a good C# book because books don't need to be turned on to be read, books are more user friendly, books are easier on the eyes, and they make it easier to learn because you don't have to keep switching windows reading from a tutorial then applying it in your code editor.

Then just dive right in.

Also look for some good C# source code and just read through it. There is no better way to learn than by example as long as the example is of a good standard and follows all guide lines. If you don't understand something look it up. Change things in someone elses code and see how it affects the program.

Last edited by hawkal; 10-31-2009 at 11:31 AM.
hawkal is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 10-31-2009, 01:20 PM   #6 (permalink)
Senior Member
 
JustinPopovic's Avatar
 
Join Date: Sep 2008
Location: Ontario
Posts: 157
JustinPopovic is on a distinguished road
Default

I have learned a lot of differnent technical tasks online by simply watching youtube tutorials. I did a few searches a found a pretty good resource. Check out this person's list of c# vids

YouTube - QuackWare's Channel
JustinPopovic is online now  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 11-01-2009, 01:06 PM   #7 (permalink)
Junior Member
 
Join Date: Nov 2009
Location: Philippines
Posts: 13
jayanuaria is on a distinguished road
Default

You can go directly with c# without going into C IMHO.

And yes. experience is still the best teacher.. especially in programming.
jayanuaria is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 11-01-2009, 03:01 PM   #8 (permalink)
Junior Member
 
Alena's Avatar
 
Join Date: Oct 2009
Posts: 5
Alena is on a distinguished road
Default

C# is a good language - elegant, powerful, easy to use, and in demand. It's a good starting point.

Java is a good one too, but if your company uses C#, it makes sense for you to start with it.

If you have no programming experience, I'd suggest you start with reading a C# book, rather then a tutorial. It will give you a broader perspective on the language and programming in general.
There are books which explain some topic, and then give you practical exercises so that you can check how well you understood it. I learned C# this way (but I already had C/C++ knowledge at the time).
Alena is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 11-02-2009, 08:37 AM   #9 (permalink)
Senior Member
 
Michael Chui's Avatar
 
Join Date: Nov 2006
Location: Seattle, Washington, USA
Posts: 2,224
Michael Chui is on a distinguished road
Default

Quote:
Originally Posted by hawkal View Post
While I agree that C is a more fundamental language. I do not think learning C would be effectively beneficial to learn C#.

C# is an object orientated language similar to Java. C is not object orientated and while you could learn some programming principals from learning C it still wouldn't justify learning it when you could dive right into C#. As I said before C# is similar to Java, and Java is often taught as a first language to computer science students.
Hm. I've long disagreed with the shift towards using Java as a first programming language. I'm not familiar enough with C# to agree or disagree with you, but I would say that learning C first is not a bad step.

This might not be the right thread for it, but I'd be interested in your opinion as to whether or not C would be a good language to start with in general, and also why Java is okay as a first language.

...

To the OP, I'd suggest talking with some of the developers in your company. Make a buddy and ask for tips. I'm actually involved with one of the testers at my company and teaching her how to program to help her build automation, so I can tell you from the other side that some of us devs are quite willing to help out.
__________________
Currently reading: Job: A Comedy of Justice, Robert Heinlein
Michael Chui is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 11-02-2009, 10:37 AM   #10 (permalink)
Senior Member
 
Join Date: Feb 2008
Posts: 555
SomeRandomGuy is on a distinguished road
Default

Quote:
Originally Posted by Michael Chui View Post

To the OP, I'd suggest talking with some of the developers in your company. Make a buddy and ask for tips. I'm actually involved with one of the testers at my company and teaching her how to program to help her build automation, so I can tell you from the other side that some of us devs are quite willing to help out.
I think that is a good idea. In my previous position that is probably the route I would have taken. In my current job, however, resources are stretched so thin that it isn't very likely to get time from anyone to help teach me. That is another reason I would like to learn to do some simple coding. Often the developers do not have the time to create tools for me, so it would be great to be able to do that myself.l
__________________
Random thoughts from Some Random Guy
SomeRandomGuy is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 11-03-2009, 03:23 PM   #11 (permalink)
Junior Member
 
Join Date: Oct 2009
Location: Metro Detroit, Michigan, USA
Posts: 21
Johnny Skosnik is on a distinguished road
Default

I've been using C# professionally for several years and agree it's a good language to learn: fairly easy and very much in demand. You can download a free edition of Microsoft Visual Studios at http://www.microsoft.com/express/vcsharp/ to write C# programs, or, if you know any students, buy the student edition quite cheaply. Also, search "C# user group (your city)" to find developers in your area to socialize with. Good luck!
__________________
Personal development can not occur in a vacuum. Meet people and join organizations who share your interests and goals.
Johnny Skosnik is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 11-03-2009, 05:02 PM   #12 (permalink)
LSO
Junior Member
 
Join Date: Oct 2009
Location: Finland
Posts: 10
LSO is on a distinguished road
Default

Quote:
Originally Posted by hawkal View Post
While I agree that C is a more fundamental language. I do not think learning C would be effectively beneficial to learn C#.

C# is an object orientated language similar to Java. C is not object orientated and while you could learn some programming principals from learning C it still wouldn't justify learning it when you could dive right into C#. As I said before C# is similar to Java, and Java is often taught as a first language to computer science students.
I totally agree with this. If you're most likely using C# in your job, then by all means, start learning it!

In my opinion, beginning with C isn't necessary. Actually, it might not be the best choice for you right now, because as pointed above, it's not an object oriented language. OO languages (C++, Java, C#) are pretty popular, especially in high level programming, so it would be very useful to learn the principles of object oriented programming. If you begin with C and get accustomed to it, you'll still have to learn OO when/if you switch to C#.

When you learn one language, it'll be easy to learn other languages later. C# is pretty similar to C++ and Java, so once you learn C#, you can easily learn one of the other languages as well. Of course, later, you can also learn C or any other language you want or need.

My first language was Java because it's widely used as a teaching language. I guess it's widely used as a teaching language because it's both object oriented and easy to learn... and is actually used in some "real life" projects.

However, when I specialized in embedded systems, I began learning C, because it's widely used in low level (hardware level) programming. So yeah, I'm a C programmer, but in your situation, I wouldn't recommend it.

While learning programming, it's more important to learn the general principles and mindset of programming. When you master these, you can apply this general knowledge and learn pretty much any language you want or need to use. Of course, when you've got the basics down, it's useful to stick to one language at first and become an expert in it. In your situation, yes, C# seems to be a good choice when it comes to your career, as you'll very likely need it at work.
LSO is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 11-03-2009, 05:05 PM   #13 (permalink)
Senior Member
 
Daffy Duck's Avatar
 
Join Date: Jun 2008
Posts: 2,306
Daffy Duck is on a distinguished road
Send a message via AIM to Daffy Duck
Default

I started with PHP, which isn't a bad language to start with, but there are better. If you're using C# at your job, then yes, definitely start learning C#. I started with PHP because I used it at my job too.

Quote:
Originally Posted by LSO View Post
While learning programming, it's more important to learn the general principles and mindset of programming. When you master these, you can apply this general knowledge and learn pretty much any language you want or need to use.
Yep! Exactly!
__________________
PHP Tutorials - easily learn programming in PHP.
"Too blessed to be stressed!"
Daffy Duck is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 11-03-2009, 05:23 PM   #14 (permalink)
Banned
 
Join Date: Oct 2009
Posts: 215
The Big D is on a distinguished road
Default

I would avoid the MSFT toolchain if you can - it's kind of crufty and IMO not a pleasant place to program. One can certainly get work done there, but I wouldn't choose to get work there if I had other alternatives.

If I were going to recommend a first high level language, I would go either most of the way up the abstraction chain, or most of the way down - either learn C which is a very concrete language, and focus on how the compiler turns your C into machine instructions (basically, use C as an assembler with braces), or learn a language like Python that has a wide variety of high falutin' abstractions (objects, complex built in data types, lambda calc etc.) and little to no contact with the bare metal computer. Smalltalk or Scheme might also be an option there.

The reason I suggest this is that most other languages are a compromise of these two paradigms - an attempt to offer some of the speed and bare metal access of C/asm with some of the features of the abstract languages. I find most of these compromises are failures, and ultimately I want either C or Python for the vast majority of jobs.
The Big D is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Reply

Bookmarks

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
I'm interested in learning programming Lupe Technology & Technical Skills 11 09-30-2009 12:15 AM
Effective Language Learning + Learning multiple languages at once superseiyan Personal Effectiveness 2 12-25-2008 08:52 AM
Learning Programming 30 Day Challenge dinc Personal Effectiveness 2 03-31-2008 07:41 AM
What programming language is close to english vladtess Technology & Technical Skills 8 11-21-2007 01:58 PM
Which programming language? Ibanez Technology & Technical Skills 15 10-12-2007 03:20 AM


All times are GMT. The time now is 05:18 PM.


Powered by vBulletin® Version 3.8.2
Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.1.0
Copyright © 2008 by Pavlina LLC