Welcome to Dream.In.Code
Become an Expert!

Join 136,942 Programmers for FREE! Get instant access to thousands of experts, tutorials, code snippets, and more! There are 1,859 people online right now. Registration is fast and FREE... Join Now!




Moving forward

 
Reply to this topicStart new topic

Moving forward, or, where to go from here.

Einherjar
20 Mar, 2008 - 10:21 AM
Post #1

D.I.C Head
**

Joined: 10 Feb, 2008
Posts: 73


My Contributions
Despite the fact that I clicked the "I am sure this is the correct forum" box, if this is in the wrong place I apologize.

Maybe a little backstory is necessary. I started programming about 8 years ago in high school with good old C++. Also learned some Java, dabbled in C# and some .NET programming, did some PHP and some mySQL.

I feel like I've hit a wall though. I've got the basics down. Down pat. I'm not concerned about the language I use, specifically. I want to learn concepts. But I don't really know where to start. I've learned how to use data structures and their associated sorting and searching algorithms. I've learned about OO programming, including the good old inheritance and polymorphism. I'm reading the OO Design Pattern books.

I still don't feel confident about my software development chops, is I guess where I'm coming from. I get on forums like this and read around and in some topics have no clue what anyone is talking about, though it seems like these things are basic, or at least intermediate concepts, that one should know without getting into specialization.

Hopefully this makes sense? Any help would be appreciated.
User is offlineProfile CardPM
+Quote Post

Martyr2
RE: Moving Forward
20 Mar, 2008 - 11:20 AM
Post #2

Programming Theoretician
Group Icon

Joined: 18 Apr, 2007
Posts: 5,232



Thanked: 220 times
Expert In: C/C++, Java, VB, VB.NET, C#, PHP, Web Development, HTML & CSS, Javascript

My Contributions
You can learn all the concepts and think things are all down pat until you start building some projects. Some of the stuff we talk about on here are theoretical. Some are for specialized fields and some are production level codes. Some are for academic classes for computer science students, and some are just people tinkering around with an idea.

Some of what we talk about is acquired through hands on experimentation and work. Try picking some projects that don't immediately come to mind as how to approach it. Do you know how to capture data from a web cam? Do you know how to go about reading a binary file? Have you played around with building your own music player? Does the music player have some visualizations?

Only after you pick a project, write out the specs to know what you are dealing with. You will you start having questions on approaches, design questions, performance questions, and simply "how do I do this?" type questions. Then as you explore your project and talk to others and solve problems you will find yourself deeper into the topics. You got to remember, myself and others have over a decade worth of experience in programming. We have been around the block and know a few tricks and worked on many projects. Even today we work on projects and have the occasional question.

But keep reading too. We all have extensive libraries of books from design patterns to algorithm design to yikes, even match books!

You will find that you can never truly master programming. It is a life long process of experimenting, designing, building and testing your creative ideas.

smile.gif
User is online!Profile CardPM
+Quote Post

Einherjar
RE: Moving Forward
21 Mar, 2008 - 08:47 AM
Post #3

D.I.C Head
**

Joined: 10 Feb, 2008
Posts: 73


My Contributions
QUOTE(Martyr2 @ 20 Mar, 2008 - 12:20 PM) *

You can learn all the concepts and think things are all down pat until you start building some projects. Some of the stuff we talk about on here are theoretical. Some are for specialized fields and some are production level codes. Some are for academic classes for computer science students, and some are just people tinkering around with an idea.

Some of what we talk about is acquired through hands on experimentation and work. Try picking some projects that don't immediately come to mind as how to approach it. Do you know how to capture data from a web cam? Do you know how to go about reading a binary file? Have you played around with building your own music player? Does the music player have some visualizations?

Only after you pick a project, write out the specs to know what you are dealing with. You will you start having questions on approaches, design questions, performance questions, and simply "how do I do this?" type questions. Then as you explore your project and talk to others and solve problems you will find yourself deeper into the topics. You got to remember, myself and others have over a decade worth of experience in programming. We have been around the block and know a few tricks and worked on many projects. Even today we work on projects and have the occasional question.

But keep reading too. We all have extensive libraries of books from design patterns to algorithm design to yikes, even match books!

You will find that you can never truly master programming. It is a life long process of experimenting, designing, building and testing your creative ideas.

smile.gif


Thanks for the response! smile.gif

I guess you're right, it comes with experience. Now the problem of coming up with projects that aren't too ambitious, but that will allow me to still learn some concepts I'm fuzzy on. Should be interesting wink2.gif
User is offlineProfile CardPM
+Quote Post

NickDMax
RE: Moving Forward
21 Mar, 2008 - 10:00 AM
Post #4

2B||!2B
Group Icon

Joined: 18 Feb, 2007
Posts: 2,859



Thanked: 50 times
Dream Kudos: 550
My Contributions
I can program in a whole host of languages. But there is a differance between knowing the syntax and how to build basic programming structures in a particular language and really using that language. Java for example is a monumental environment with Java SE, Java EE, and Java ME... and countless API's and frameworks. At work I am constantly challenged to learn new Java technologies.

So once you learn a language, you have to learn how to USE it. Learning the language C is a long way away from programming using the windows API. Knowing how to write windows programs is a long way off from using DirectX or OpenGL to write 3D Graphics programs... knowing DirectX and OpenGL is a long way off from knowing how to write a physics engine... etc.

Knowing a language and using a language are very different. As a programmer you can never really stop learning... when you do, you fall behind.

If you ever feel that you really are a master of a particular sphere, well then it is time to contribute to moving that sphere forward yourself.
User is offlineProfile CardPM
+Quote Post

Einherjar
RE: Moving Forward
21 Mar, 2008 - 11:59 AM
Post #5

D.I.C Head
**

Joined: 10 Feb, 2008
Posts: 73


My Contributions
QUOTE(NickDMax @ 21 Mar, 2008 - 11:00 AM) *

I can program in a whole host of languages. But there is a differance between knowing the syntax and how to build basic programming structures in a particular language and really using that language. Java for example is a monumental environment with Java SE, Java EE, and Java ME... and countless API's and frameworks. At work I am constantly challenged to learn new Java technologies.

So once you learn a language, you have to learn how to USE it. Learning the language C is a long way away from programming using the windows API. Knowing how to write windows programs is a long way off from using DirectX or OpenGL to write 3D Graphics programs... knowing DirectX and OpenGL is a long way off from knowing how to write a physics engine... etc.

Knowing a language and using a language are very different. As a programmer you can never really stop learning... when you do, you fall behind.

If you ever feel that you really are a master of a particular sphere, well then it is time to contribute to moving that sphere forward yourself.


Yes that's exactly what I mean. I'm not really concerned, at this point, with which language I'm using, but how I can learn and then apply new programming concepts to continue figuring out how to do things. I guess I feel like I've learned the basic ideas regarding programming, but I'm unsure of what topics I'm missing out on that are universal. Not really windows specific, or graphics api specific, or necessarily language specific. Like data structures and algorithms are fairly universal. Linked lists are linked lists are linked lists whether you're using C/C++ or another language. Those sorts of things. The basics that aren't "Beginning C++ programming in 13 minutes 16 seconds".

I mean, the case may be that I've learned those basics and how to apply them in simple applications and that I now have to start specializing in something, whether that turns out to be graphics programming or windows programming or network programming or whatever. Sometimes I guess I feel like I get lost in some programming discussions and I am not really sure if I'm missing some basic concepts that I simply have to know, or if I'm missing concepts because they are more specific to a platform/api/whatever that I really have no desire to specialize in. I guess what it all comes down to is the fact that most of my "programming education" has been self taught, and I am suffering a lack of confidence in my abilities when I see things that I don't understand that don't obviously seem to be a specification.
User is offlineProfile CardPM
+Quote Post

Fast ReplyReply to this topicStart new topic
Time is now: 12/3/08 11:00PM

Live Help!

Tutorials

Programming

Web Development

Reference Sheets

Code Snippets

DIC Chatroom

Bye Bye Ads

Monthly Drawing

Thumb Drive

Top Contributors

Top 10 Kudos This Month