954,056 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Have something to say? Contribute New Article Reply to this Article

The programming learning curve:

Sometimes I feel like I may be pushing myself along a little too quickly with computer programming. For instance, I'm in the process of learning VB.NET and have gotten to where I feel like I can start trying a few things, so I decided to look at some of the code for our custom tools here at work. They kind of make sense to me, but I don't even know how to begin figuring out what objects I need to reference. I work in Geographic Information Systems the software we use (ArcGIS) has an object model that is just insane. Here's the ArcObjects model if anyone wants to take a look: http://edndoc.esri.com/arcobjects/9.1/ArcGISDesktop/AllDesktopOMDs.pdf

All of our stuff is done in VB.NET so I was trying to find some sort of documentation to at least get me started. It was then that I realized that I don't have the background yet to even understand the jargon they use to explain things. For instance, I don't know what "hashing" is. I know these are basic concepts for anyone in computer science, but I haven't had that many CS courses. Does someone have to know all the theory to be able to program or is it just something that you can learn on your own through experience? Does it take a long time to get to the point where you can just jump right in and do exactly what you want?

I'm thinking that the learning curve for this stuff is a lot higher than I expected and that it will take awhile to get the hang of it. I feel like I should be able to just jump right in but all that's done is made me get frustrated and want to give up. Kind of the, "I'm too stupid to do this" feeling. It's overwhelming at times.

jread
Newbie Poster
11 posts since Mar 2006
Reputation Points: 10
Solved Threads: 0
 

Jread,

Chill fella you are most definitely *NOT* alone, it's like that for heaps of us. Sometimes I convince myself I'm in completely the wrong job and a total programming fake (usually after looking at an object model like yours he he) I only have the vaguest idea what a hash table is myself, but i'm not worried I know I can find out all about it one day.

You do have to be aware of the low level stuff, there are a million layers of flakey abstraction between the bits floating around in the hardware and your high level OOP code. It is a steep learning curve but stick with it you will get a little further each day. You will have days -weeks even - when you will feel you have achieved nothing....

Oh I'm getting kicked out of the office I'll do more tomorrow.

hollystyles
Veteran Poster
1,182 posts since Feb 2005
Reputation Points: 262
Solved Threads: 68
 

>I'm thinking that the learning curve for this stuff is a lot higher than I expected
That's very likely.

>I feel like I should be able to just jump right in
After a couple of years of learning you can jump right in and still be overwhelmed. There's really no such thing as a comfort zone when it comes to real world programming. ;)

Narue
Bad Cop
Administrator
15,460 posts since Sep 2004
Reputation Points: 6,464
Solved Threads: 1,401
 

And I'm exceedingly curious as to whether you got permission to make public internal company documents, and what the penalty to you would be if you don't have such permission and your boss found out...

jwenting
duckman
Team Colleague
8,392 posts since Nov 2004
Reputation Points: 1,662
Solved Threads: 337
 
And I'm exceedingly curious as to whether you got permission to make public internal company documents, and what the penalty to you would be if you don't have such permission and your boss found out...

What are you talking about?

jread
Newbie Poster
11 posts since Mar 2006
Reputation Points: 10
Solved Threads: 0
 

I recently got hired as a .NET programmer and compared to C++ and Java, it's like a walk in the park. .NET languages are extremelly easy, in my opinion. If I can do it, anyone can do it. You just have to personally want to make it as a programmer.

server_crash
Postaholic
2,111 posts since Jun 2004
Reputation Points: 113
Solved Threads: 20
 

Server crash, I seem to follow you around daniweb and post after you. But I hope and believe your right. I believe that anyone is capable if they really try, I hope your right cause thats what I want to learn next, programming,

some on my own, but I'd like to go back to school for it when my company picks up the tab

I can't say I've disagreed with you so far.

GriffIT34
Junior Poster
138 posts since Apr 2006
Reputation Points: 17
Solved Threads: 1
 

If you're just starting out then don't go for .NET right away and stay away from tools that will make you lazy until you actually get a good feel for doing it without the added cushion.

server_crash
Postaholic
2,111 posts since Jun 2004
Reputation Points: 113
Solved Threads: 20
 

What tools???

GriffIT34
Junior Poster
138 posts since Apr 2006
Reputation Points: 17
Solved Threads: 1
 

IDE's where you can just drag n drop controls on a form type stuff like VIsual Studio. The're great but they hide stuff, it takes care of all the boring crap like include paths and compiler optimisation switches, and generates code in the background. It's not a problem if you know what it's hiding, but if you don't the day it lets you down you're gonna be stuffed. That's why so many people recommend starting with C or C++ because you learn about bits and compilers and how memory is laid out and important stuff like that, so then when you go for the big tools and a freek mouse accident somehow wipes out your classpath you know why the darn thing refuses to build and you can straighten it out.

hollystyles
Veteran Poster
1,182 posts since Feb 2005
Reputation Points: 262
Solved Threads: 68
 

So does something like learning python instead of c+ using tools and taking the easy way out. Or are they just 2 different languages??

GriffIT34
Junior Poster
138 posts since Apr 2006
Reputation Points: 17
Solved Threads: 1
 

Well I'd argue there is no easy way out. It's not about learning Python, or learning C++ or java or whatever, that's the easy bit it's just syntax it doesn't make you a programmer. I can speek English, but that doesn't make me a poet, to be a poet I need to understand what makes the language what it is: nouns, verbs, adjectives. And then the techniques of rhyme, stanza etc... These are the key. So don't fret about programming languages when starting, just pick one and get going.

It's like I can scrawl a load of words on a page easy peasy, but getting a good grade from my teacher is a bit more tricky.

I can type a load of correct syntax in a source file, but getting a good grade from my compiler/interpreter is a bit more tricky.

See what I'm saying?

hollystyles
Veteran Poster
1,182 posts since Feb 2005
Reputation Points: 262
Solved Threads: 68
 

Very much so, and you did clearify. That they're both languages of equal integrity so just go for it and start learning. I found a tutorial for python that looks thorogh so Im gonna start there.

Thanks again for the info

GriffIT34
Junior Poster
138 posts since Apr 2006
Reputation Points: 17
Solved Threads: 1
 
If you're just starting out then don't go for .NET right away and stay away from tools that will make you lazy until you actually get a good feel for doing it without the added cushion.

I'd have to disagree here.

You could most certainly use a .NET language (C#/VB.NET/C++) andnot use Visual Studio. In fact, I could fire up Notepad, write some C# code, save the file as myprogram.cs, and then feed it to csc.exe. and compile it into an executable form. If you want to learn the nitty-gritty of the language's syntax, you can do it without Visual Studio.

In that respect, it's not that different from say, learning C in a text editor and then compiling using gcc. In my opinion, though, using an IDE like Visual Studio when learning can yield a great benefit-- rather than focusing on the syntax so heavily, you could then focus on learning fundamental object oriented programming concepts. Such concepts illustrate the power of languages like C#,VB.NET, and Java, but many new programmers don't utilize the features, because they feel they're too difficult to grasp.

alc6379
Cookie... That's it
Team Colleague
2,820 posts since Dec 2003
Reputation Points: 186
Solved Threads: 147
 

Well, for me the Visual Studio environment has been a good place to learn. I realize that I need to understand what's going on behind the scenes (kinda like writing HTML in notepad instead of using Frontpage) but the one good thing about using an IDE is the "instant gratification" that comes along with it. I took my first programming class over a decade ago and I could only take so much of writing code at the command prompt. I think that the .NET environment is nice because it's encouraging for new programmers... you can create something more quickly and see instant results. This is motivating to me and makes me want to do more and more. I still, however, plan to take the concept courses in data structures, etc. because the fundamentals are very important for all the reasons you guys have listed.

jread
Newbie Poster
11 posts since Mar 2006
Reputation Points: 10
Solved Threads: 0
 

I wasn't just referring to the Editor when I said stay away from .NET from the get go. The general syntax and way of doing things is just way to easy and gives the misconception that all languages are that easy and will make you lazy... Doesn't work that way for everyone, but I've seen it happen too often.

server_crash
Postaholic
2,111 posts since Jun 2004
Reputation Points: 113
Solved Threads: 20
 
rather than focusing on the syntax so heavily, you could then focus on learning fundamental object oriented programming concepts.

Sadly for most people it ends up not learning the syntax but instead learning where all the buttons and wizards are located to generate code for them and then crying like babies when they end up having to write some code by hand because they don't know how.

jwenting
duckman
Team Colleague
8,392 posts since Nov 2004
Reputation Points: 1,662
Solved Threads: 337
 

Hmm.. this leads me to another question:

I'm debating between a degree in CIS or Software Engineering. The CIS provides more business courses, but is not as much into programming. I'm thinking of doing the CIS degree and taking programming courses at the community college along the way. I hear that CS degrees can be a little too dry and theory-based and I'm not sure how necessary it would be to go that route.

jread
Newbie Poster
11 posts since Mar 2006
Reputation Points: 10
Solved Threads: 0
 

I cannot advise amongst courses as I have never done a computer science degree of any kind, I studied business and wish I hadn't. Here's some general advice you can take or leave.

Don't do the course you think you should do, do the one that most interests you, you are more likely to do well in it.

At degree level it is not SO important which one you do obviously it depends on your future plans somewhat, but they should also be aimed at what interests you, because again you are more likely to excel.

A GOOD grade is whats important and the quality of the college/university where you get it. Learning to teach yourself new things by researching and reading and experimenting are the main assets you take away with you from a degree course and are the skills you will use most in life thereafter. (as well as how to cook he he..)

hollystyles
Veteran Poster
1,182 posts since Feb 2005
Reputation Points: 262
Solved Threads: 68
 
I wasn't just referring to the Editor when I said stay away from .NET from the get go. The general syntax and way of doing things is just way to easy and gives the misconception that all languages are that easy and will make you lazy... Doesn't work that way for everyone, but I've seen it happen too often.

Don't take this like I'm drilling you or anything, but can you please cite a specific example of the phenomena you're describing? Some main differences I've seen is a lack of required garbage collection, and the fact that the .NET framework allows you to write modules in one .NET language usable in another .NET language. C# is really similar to Java, and it's notthat far off from C++ . In fact, the syntax is not all that different from Perl or PHP. If you can understand VB.NET, you could probably understand Python fairly well, or even Ruby.

I don't entirely think that the choice of language makes someone "lazy", neccesarily. I like the fact that I don't have to fool around with garbage collection, for instance-- that allows me to focus more on my programming logic, and not mundane housekeeping. What "way of doing things" makes a .NET language any different from another non-.NET language?

I'm genuinely curious. If anyone else wants to weigh in, I'd be really glad to hear. I'm open to any feedback that's presented.

alc6379
Cookie... That's it
Team Colleague
2,820 posts since Dec 2003
Reputation Points: 186
Solved Threads: 147
 

This article has been dead for over three months

Post: Markdown Syntax: Formatting Help
You