Hi guys.
Now the reason why i am writting this is because i ve spent days searching the web and not finding the answer i want. I know that is it hard to find such an answer but i hope i ll find it here.

I started programming 3 months ago in C#. I understand programming well at least that s what i think. I ve written some small programs for example a coverter wich converts numbers from one base to another, a let s call it simple progress bar racer wich works with the random class and displays names in the listbox starting from the winner and going to the person who s on 3. place and a small programm wich reads times from a notepad and then tells you when will the next three buses leave and countdowns the time in textboxes .

Now the problem is when i see people writting tremendous code i m like stunned and asking myself will i ever be writting such complicated and well structured code. I can t hardly imagine myself writting a serious application and so on but I REALLY WANT TO BE A PROGRAMMER I JUST LOVE IT no matter what.

So i would like from you guys to give me a suggestion on some tasks that are already on the net that are enough hard and logical to prove myself if i can stay on this track or should i consider something else. Just to let you know i m in college an engineer student and i somehow cant stop thinking will i succeed in programming or am i wasting my time ,,, TNX ! ps(i m a selftaught promgrammer we did just little programmin in college).

Just to let you know, I am also pretty much self taught in programming and hold two engineering degrees. In fact, it was my distain for doing mundane computations that provided the impetus to become more proficient at programming.

It takes time to to develop skills whether they be in programming or anything else. Since you are still a student in engineering, you should be presented with plenty of well defined and tedious computational tasks that could be made easier with some type of computer program. Even if you don't end up being a full-time coder, having the skill will be only to your benefit. Keep your options open.

I would recommend that you use your elective classes wisely to strengthen skills that will be valuable to you as both an engineer or programmer. i.e. advanced mathemetics.

I am somewhat concerned that you have expressed doubt about your ability to tackle developing a large complex program. As an engineering student, you should realize that a well designed large complex system is built of many smaller components.

However, if you are in the midst of the weed-out class, I can understand that confidence may be shaken a bit at this point. Stick it out it will get better.

You may want to talk to your adviser and some other of your professors about your love for programming. You may even be able to pick-up some work develop applications for them.

It's hard to give more relevant advice, without knowing more about you.

What engineering discipline are currently pursuing?

Good Luck!

Tnx for the reply!
I m studying civil engineering and i m a very good student well this is what my grades say at least i ve got A s in probability, higher mathematics, electrical engineering etc... but i don t know, programming is a bit different. I undersand it well but somehow i m always insecure for example when looking at QUICKSORT i have to pick a number to see that it realy works and go through that proccess and i have a strong feeling that this is not good that i should look at the algorihtm in a more logical way just to make some intervals and logical loops otherwise writting down a number and going through the proccess is something that takes a lot of time. Concerning the recursion i understand it but i don t trust it somehow i have to trace it to be sure that the code that i wrote is going to evaluate right etc... If anyone here could give me some suggestion what code should i write to prove my self that i can do it i would appreciate that very much!

Big and complicateds softwares are nothing more than small pieces of code put toggether.

In my opnion, being a programmer is one thing, being a software developer is something more. You need to have the vision of what group of small pieces of code put toggether will achieve the funcionality you desire.
And not only code, what will you use to store your data? How would you integrate your solution with another one? Do you need to consume an 3rd part service or use an 3rd part library? Do you have access to them? Are they open source? Do you need to buy them/the use of them? How would you distribute your software? Will you charge the use of you software? How? What kind of user is your target? And so many more questions...

If you want to develop complete software solutions, you'll need much more knowlodge than just a programming language.

I'll tell something about me: I learned allmost everything that I know in software development by myself, but I did a couple of one week classes too.
I've been working with IT from the past 6 years now, and this is the things that I worked and still work with most of the time:

  • Programming Languagues/Markup Languages
  • Microsoft ASP.NET, Windows Forms, WCF, WPF (C# and VB)
  • Windows Batch, Shell Scripting
  • PHP
  • Java (For Android)
  • JavaScript/JQuery/VBScript/ActionScript
  • SQL (Procedures, Triggers and Querys)
  • DataBases
  • SQL Server 2000, 2005 and 2008
  • MySQL 4 and 5
  • Oracle 10 and 11g
  • Concepts
  • Procedural Programming
  • Object Oriented Programming
  • Event Oriented Programming
  • MVC Architeture
  • DataBase Diagram
  • Class Model Diagram
  • Use Case Diagram
  • Flow Charts
  • Interface Wire-Frame

So, from my experience I think you can't learn one programming language and say you're a developer. You need to study and practice each day that passes by.

If you are up to it, I'm certain that you'll never be out of a job.