Discuss **warning** Dummy Here in the Beginner Programming forum on Dev Shed. **warning** Dummy Here Beginner Programming forum discussing problems and solutions for just about any issue. Experienced programmers offer their help to those just starting out.
Posts: 2
Time spent in forums: 30 m 59 sec
Reputation Power: 0
**warning** Dummy Here
hi,
here is my situations and if you could please point me in the right direction, i would be glad..
I am 18 years old and just going to Uni (pharmacy course) but i have alot of time on my hands and i would like to be a programmer (loosly put i know)..the problem is there are sooooooooooo many programming styles/languages etc out there and i dunno where to begin..
questions:
1) Can i really be a good (not great) programmer by simply learning the programming languages or codes that are available as free tutorials on the net? or do i have to take special computing courses?
2) if the answer to question 1 is YES then where to begin? which lanuage should i start with and then progress from there? (Remember i dunno ANYTHING)
3) is this like 'the more languages you know the better?' if so, what if i learn 4 or 5 languages and then a software comes out that supports all these languages in one, and then my efforts are down the drain (like .NET, at least i think thats what it does)
im sorry if i sound stupid to you, but please just help me out here
Posts: 1,747
Time spent in forums: 1 Month 4 Days 23 h 43 m 8 sec
Reputation Power: 885
1) Can i really be a good (not great) programmer by simply learning the programming languages or codes that are available as free tutorials on the net? or do i have to take special computing courses?
Not really. You're not going to be a good programmer unless you challenge yourself to create something on your own. You can start out following tutorials, but until you apply the skills that you learned in those tutorials into something unique, you're not going to move forward with your abilities. Now, when I say something unique, I don't necessarily mean something that no one has ever made. I mean something that you've created from scratch (even if it's something popular, like a message board or email client).
2) if the answer to question 1 is YES then where to begin? which lanuage should i start with and then progress from there? (Remember i dunno ANYTHING)
My answer is not "yes, you'll be a good programmer by doing tutorials". But I do think you should start with them, just don't stay at that level. Challenge yourself to move up.
There are some good tutorials on this site: www.devshed.com. Depending on what kind of programming you learn will really decide what kind of language you should learn first. If you want to do web programming, consider learning python, php, or perl. If you want to do application programming, consider learning java or c++.
3) is this like 'the more languages you know the better?' if so, what if i learn 4 or 5 languages and then a software comes out that supports all these languages in one, and then my efforts are down the drain (like .NET, at least i think thats what it does)
That's a good reason why you shouldn't just learn languages. You want to learn how to write efficient algorithms and how to manage your projects. You should learn the theories of different data structures and design patterns and frameworks. You should learn the principles of object oriented programming and other programming methods. You should spend time learning HOW things work and how to solve problems instead of the language that the code is written in. If you know how to accomplish a task logically, then you can look up the syntax in any book for any language.
Posts: 5,538
Time spent in forums: 1 Month 3 Weeks 1 Day 19 h 30 m 28 sec
Reputation Power: 1050
Your thread title is crap, I had no idea what to expect reading it, that's the first thing you'll have to learn to do.
I'm self taught, never taken a course in my life, the tutorials can be a valuable resource, but you will have to put in a lot of work to get good with it (you would with a course too).
I'd say it will take probably about 3 years if you put in a lot of time, to get to be very good at everything. If you don't spend 3/4 of your time in front of a computer, increase that figure accordingly.
Start with php and mysql, it's widely wanted and it's not too hard to learn. Stick strictly to accepted coding standards and write clean, well-commented code. Never give in when a problem appears, think calmly and rationally about it, and if not, go for a jog and come back to it later.
Posts: 2
Time spent in forums: 30 m 59 sec
Reputation Power: 0
"""If you want to do web programming, consider learning python, php, or perl. If you want to do application programming, consider learning java or c++."""
i dont really know the answer to that question but generally in the real world do you know which field is more "employable"?
or are they both equally wanted?
"""Start with php and mysql, it's widely wanted and it's not too hard to learn."""
Posts: 5,538
Time spent in forums: 1 Month 3 Weeks 1 Day 19 h 30 m 28 sec
Reputation Power: 1050
You will *never* (I mean that rather strongly) get a job developing a website In C.
C is for developing fast apps, and it takes a lot of patience to learn properly. PHP on the other hand is for developing portable apps, doesn't take long to learn and doesn't take long to learn to obey standards on either (the last bit is very important, noone wants to see crap php code).
Posts: 7,652
Time spent in forums: 3 Months 6 Days 1 h 35 m 4 sec
Reputation Power: 6083
If you want to learn to make websites, you'll want to start with PHP, or possibly python/perl. If you're into applications (everything that's not a website), look into java/C/C++. Once you learn java, you can also use it for websites by making applets, and by learning servlet technology and/or ASP.
To start, I recommend PHP and MySQL.
__________________ Chat Server Project & Tutorial | WiFi-remote-control sailboat (building) | Joke Thread
“Rational thinkers deplore the excesses of democracy; it abuses the individual and elevates the mob. The death of Socrates was its finest fruit.”
Use XXX in a comment to flag something that is bogus but works. Use FIXME to flag something that is bogus and broken. Use TODO to leave yourself reminders. Calling a program finished before all these points are checked off is lazy.
-Partial Credit: Sun
If I ask you to redescribe your problem, it's because when you describe issues in detail, you often get a *click* and you suddenly know the solutions.
Ches Koblents
Posts: 527
Time spent in forums: 1 Week 15 h 22 m 7 sec
Reputation Power: 148
In my area languages that are in heavy demand right now are Java, C#, C++. PHP is way down the list, and the rates for PHP programmers is much lower than Java or C# developers.
For example, on one very popular jobs board tonight, there are about 200 Java listings, 100 C# listings, 100 VB.NET listings, 200 C++ listings, and 30 PHP listings for jobs in close proximity to where I live.
I am in San Diego, California, US - and it is bound to be different in other areas.
I would suggest learning Java or C# as a first language,
and become proficient in SQL and XML. Don't worry about what might happen if you learn 4 or 5 languages and then something different or better comes along - that is going to happen no matter what... and what someone (or some marketing copy writer) says, it is impossible to judge what is going to be the next hot thing that will solve everyones problems. The key thing is that learning any language is useful, and learning many languages gives you many different ways to think about programming - this is a field where you will be learning things your entire life.
More important is to learn the fundamental principles and practices as you learn the languages.
For example, Look up Robert Martin, Martin Fowler, Dave Thomas and Andy Hunt, Kent Beck, etc. - some things you might want to be learning about are Object Oriented Programming (oop), Refactoring, Test Driven development, Design Patterns, Agile Development, and XP. Once you start tracking down and reading the writings of these people and these topics you will start to get an idea of what is important.
Posts: 5,538
Time spent in forums: 1 Month 3 Weeks 1 Day 19 h 30 m 28 sec
Reputation Power: 1050
woodyz: Why do you recommend java and then go on to recommend authors and books targeted at Ruby development?
Talking to people in the industry, the top paying jobs are java and c#. I can't stand either of them, so they could be worth $900/hour and I still would hate my job.
You have to find a language that suits you, and for most people php is a good choice, it's also very employable (in most areas of the world, it's the most advertised language). You know php, it's a safe bet there'll be a job for you.
I do agree about SQL and XML though, most companies will want to work with at least one of these alongside your other programming tasks. XML is a 2 hour job to learn what it is and how to parse it. SQL isn't too difficult until you get to joining 3 tables, and then you might get confused.
As for other knowledge:
--OOP
--Unit testing
--Design patterns (singleton etc.)
Posts: 527
Time spent in forums: 1 Week 15 h 22 m 7 sec
Reputation Power: 148
Quote:
Originally Posted by LinuxPenguin
woodyz: Why do you recommend java and then go on to recommend authors and books targeted at Ruby development?
That is an interesting comment. Which "books" did I recommend? Robert Martin has written books on Java, but none on Ruby that I know of. I don't know of any Ruby books by Kent Beck or Martin Fowler either, do you? Have you ever read any of there books? And Dave Thomas and/or Andy Hunt have given us such books as Pragmatic Unit Testing
in Java with JUnit, The Pragmatic Programmer: From Journeyman to Master, and Practices of an Agile Developer
Working in the Real World BESIDES the great book they have on Ruby.
Posts: 5,538
Time spent in forums: 1 Month 3 Weeks 1 Day 19 h 30 m 28 sec
Reputation Power: 1050
Quote:
Originally Posted by woodyz
That is an interesting comment. Which "books" did I recommend? Robert Martin has written books on Java, but none on Ruby that I know of. I don't know of any Ruby books by Kent Beck or Martin Fowler either, do you? Have you ever read any of there books? And Dave Thomas and/or Andy Hunt have given us such books as Pragmatic Unit Testing
in Java with JUnit, The Pragmatic Programmer: From Journeyman to Master, and Practices of an Agile Developer
Working in the Real World BESIDES the great book they have on Ruby.
Perhaps you should expand your reading a bit.
Fowler and Hunt concentrate mainly on ruby nowadays, which is what I was mainly referring to. The agile development book is also targeted at ruby. In that series, they also have a second 'agile' book specifically targeted at *spit* rails.
Posts: 527
Time spent in forums: 1 Week 15 h 22 m 7 sec
Reputation Power: 148
Quote:
Originally Posted by LinuxPenguin
Fowler and Hunt concentrate mainly on ruby nowadays, which is what I was mainly referring to. The agile development book is also targeted at ruby. In that series, they also have a second 'agile' book specifically targeted at *spit* rails.
What Ruby book has Martin Fowler written? I'd be interested in reading that. And what about Kent Beck (Junit, XP) or Robert Martin(Agile Software Development Principles, Patterns, and Practices, or UML for Java Programmers). You don't think these are worthwhile books?
To make the point - I have read books on SmallTalk to help me better understand OOP, but I don't do any production development in SmallTalk. Just because someone gives examples in Ruby, or any particular language for that matter, doesn't mean the concepts and principles don't also apply to other languages, does it?
Your original question to me seemed to imply that there is some conflict in recommending the authors I suggested and also suggesting that Java or C# are programming languages worth learning. I still don't see the connection. Those authors all have a lot of valuable knowledge we can all benefit from, and I have learned a lot from them that I use daily in designing and coding in C# and Java, as well as VB6, ASP, PHP and etc. What's the big deal?