1.

Solve : how can i become a programmer?

Answer»

my name is dsymaryon,
please i want to learn how to program and be a good programmer!

dsymaryon, welcome to the forum.

It takes about two years for some people to learn how to program. But it all depends on how much time and motivation you have.
Do you have good reading skills? There are many good books about programming. But you don't have to buy the books. Some are at your local library. Others are free on the Internet.

Have you computer you can use? What kind?

Are in in school now? Have you raked to a school counselor? Does your school have a computer club? Do you have friends or relatives that program?

Before I and give more exact advise, I would have to know some more things about you. Like your age, your hobbies and your BEST subjects in school.


Are you sure you have the aptitude to be a programmer? Programming requires a very logical thought process that some people don't seem to possess. If you are currently in school, ask your counselor if you can take tests that will show what aptitude strengths you have and then go from there. The best thing you can do really is to just try it and see how you get on, the only way you can really learn to program is by doing it, it just takes a lot of practice. I'd recommend starting off with something simple like Python, jumping straight into something like Java or C++ is a massive leap that introduces far too many confusing concepts.

It won't be a quick process though, it can take a couple of years of practice before you will be able to write a large scale system that works well.

I'd recommend starting off with some sort of proper tutorial such as Codecademy which provides an entirely online environment for running the code that you will write. It's not the most exciting thing in the world but will teach you the basics you need to learn. From there you can then look into making more interesting projects. It's important that you don't learn to write code by following "tutorials" that essentially give you the code that you need since it's all too easy to just blindly copy it without thinking about what it does. Sites such as Codecademy on the other hand introduce the concepts and make you think about how to solve the challenges.

The Codecademy Python tutorial can be found here: https://www.codecademy.com/tracks/pythonAnyone can become a programmer and claim to be one.... however a really good programmer is not that easy to be if you have a weaknesses in attributes that need to be strong for a programmer.

Biggest question I have is.... what specific types of programming interest you?... as for the program language suggestion may depend deeply on your programming goals.

Have you ever looked at any good properly programmed and functional if run source code before and tried to figure out what it does and why through a reverse engineering process?

I also agree with Cameron that you would want to work with a language such as Python and go from there. Then once you get the basics down of coding and reuse of objects and nested loops and logic conditions, then you can get into advanced Python with multidimensional arrays and Local and Global Variables etc, and either stick with python or move on to a more complex ide.

Being a programmer is NOT easy! You need to be very good with math, logic, and keeping track of what is going on and why. Flow charts are very useful as well as comment lines in your code to keep track of what is going on and dependencies. As well as need to be able to think outside of the box to avoid painting yourself into a corner with your code because you didnt see the whole picture when going into programming it all up. Expect to spend hours on end of just coding and debugging. Expect to mess around with your own code or others code on a daily basis and continually learn from others code as well as personal experiences with your own.

I have been programming since 1985 at age of 10 on Basic. I self taught myself from TRS-80 magazines that had code examples in them which I would take the time to type it exactly as I saw it in the magazine and then run it. Many times I would typo and the program would fail to operate or would operate and I would get unexpected results. I had a TRS-80 Model 1 with only 16k RAM I made my own programs at times and ran out of memory. This gave me a good basis to build my programming skills from....however it also while giving me a grasp of concepts taught me very bad programming with what is called Spaghetti code. I was so use to just using redirection of GOTO statements that when i wanted to jump to another section of code, i would just use goto statements everywhere. For a programmer other then myself they would have had a headache trying to follow my code. I then moved on to GW-Basic which had sounds and colors which made making games fun. I then moved on to QBasic although because QBasic had legacy support for handling GW-Basic ( basic ) I found myself many times just reverting back to old habits with GW-Basic coding of Basic instead of learning the better QBasic methods. In college in 1998 I dove into C++. I had a choice of C++ or VB. I chose C++ because I wanted to be able to program cross platform and wanted to go for the harder language and one that most of the video games out there was programmed from. My dream at one point was to be a Game Developer Programmer. Soon however I quickly realized that I was in over my head mainly because its very very difficult to make video games solo with no digital ART skills and mathematical computer physics skills to create formulas that would render to make an imaginary world come to life. Instead I focused on IT/MIS and used my programming skills to make band aid fixes to join data between 2 pieces of software or very specific custom programs that there is no off the shelf or download option for. I have also posted some projects onto github for others to use my C++ source code to tweak it or compile it and use it for themselves as is with no liability for any damages that result from use of my programs.

These days I do not code on a regular basis. The last program I wrote was 2 weeks ago, and before that about 3 weeks before that. I often find myself looking online for code examples and then implementing that into my source code for advanced concepts that are new to me or I am not familiar with enough to just code on the fly. So I am more of a hobby programmer. Additionally I had difficulty sticking with only 1 language. I wanted to be familiar with all and so I went for all. This need of having to know all, even though I never will is probably my biggest mistake as for if I took all that time and focused on just 1 language I would be further ahead in my skills for C++.

I am familiar with:
C++
C#
C
Basic
GW-Basic
QBasic
VB ( Visual Basic )
Perl
Python
PHP
Ruby
Batch
Java Script
HTML

and my favorites are C++, C#, Perl, Python, PHP.

Why I like each one:

C++ ... you can do just about anything you can think of with it if you can grasp the concepts and have the ability to think it all up and code it properly. It supports multiple platforms. You can compile the program and distribute it.

C# ... it is so much easier than C++. It has lots of strengths over C++....mainly Rapid Development using the IDE

Perl ... I can code up a program in 5 minutes that could take me 30 minutes or longer to achieve with C++. It has many built in strengths. It compiles on the fly so you just launch your .PL file and its runs or crashes if you has issues. It has good support for server side scripting for dynamic web pages.

Python ... Its like Perl but I feel more advanced. It supports Linux VERY WELL so if your coding for the Linux open source community, it plays well with Linux.

PHP ... Server Side scripting is very good. Has some strengths above that of Perl for the same programming needs.All of these suggestions are good, but it is really hard to learn to program reading a book or books.

Look around the house, at work, of from friends on something that you want to make easier. For me I was a youth bowling coach back in the late 70s and with regular work and coaching it put a strain on me to make sure I had the standing sheets and doing other chores required. So I created a program to help me do it. Start small and expand as you grow more comfortable.

Now I started with BASIC, it is easier to learn and can be done quicker than trying to learn C or any other language. You can download a free version of Visual Studio from Microsoft and there you have C++, C#, and BASIC all in one package. But I found something that will help make it easier, there is a free program called QB64, a Quick BASIC clone. It runs in Windows or if you have Linux you can use it in Wine. There are free clones in many languages, Pascal, Fortran, Cobol, C, and C++, along with BASIC.

It is unfortunate that today we don't have the constraints that we had back in the late 70s and early 80s when you had to create a powerful application and it had to fit on a 360k floppy. Today many programmers will go crazy with needless code because there is no limits on what you can put on a disc. When OS/2 was released along with the IBM /2, Bill Gates bragged about it took 3 million lines of code to create OS/2, 3 million. All of us programmers standing in the back of the room shook our heads at 3 million lines of code.Quote from: OldTimeCoder on January 12, 2016, 04:42:52 PM

All of these suggestions are good, but it is really hard to learn to program reading a book or books.
Books/ Programmer's guides make a good reference, but I agree, one cannot merely read them and know how to program. I myself taught myself with the Visual Basic 2.0 manuals over a summer break- but I did this by deciding what to make (a straightforward HTML color selector for the tag) and using the books as a reference for how to do so. That is- the Programmer's Guide had "tutorials" of sorts but I didn't see the value in animating a butterfly across a window.

Nowadays I try to get more familiar with programming languages I've not used much by using the problems on Project Euler or by creating an Anagram search program to find algorithms in a dictionary file. Which is pretty useless, but I already know how to program in other languages. I agree that when first learning to program it is very useful to create something useful because then the programmer is a user of their own software.

Quote
You can download a free version of Visual Studio from Microsoft and there you have C++, C#, and BASIC all in one package.

It should be noted that Visual Studio does not support BASIC; rather the language it supports is Visual Basic .NET. It shares syntax and keywords with many BASIC dialects but it is quite a different platform and language. The reason I mention this is that BASIC tends to be associated with, uh, it's acronym, but realistically I don't think the language supported by .NET for Visual Basic is really intended for Beginners- not in the same sense as with BASIC. Kemeny and Kurtz would probably be rolling in their grave to hear the two associated.

That is not to suggest that it is a bad idea to use Visual Studio- C# and Visual Basic are as good as any other language, IMO. My advice to those who are trying to "choose" which language/platform to start with is that what they start with is less important then the fact that they actually get started.

Quote
But I found something that will help make it easier, there is a free program called QB64, a Quick BASIC clone.
FreeBASIC is another good alternative. I believe it might be a better option for Linux as (iirc) it can be run natively under Linux as well.

Quote
It is unfortunate that today we don't have the constraints that we had back in the late 70s and early 80s when you had to create a powerful application and it had to fit on a 360k floppy. Today many programmers will go crazy with needless code because there is no limits on what you can put on a disc. When OS/2 was released along with the IBM /2, Bill Gates bragged about it took 3 million lines of code to create OS/2, 3 million. All of us programmers standing in the back of the room shook our heads at 3 million lines of code.
I can't find a reasonable source for the quote but I don't doubt that somebody said it. How many lines of code a product had was some weird chest-beating in the 90's.

Even nowadays anything older than a few years "should be upgraded"- but it makes no sense to do that if it already works. The software I work on is a C#, Windows equivalent to the old BASIC product. It worked well enough since the 80's and while it's hardly perfect, it was enough for them to do business. The reason we are making a new version is that it stopped serving that task because the OS vendor won't INVESTIGATE, let alone patch a serious network stack problem.

Any time I mention my work on a programming forum, it's all "Dude, you should use WPF" and "OMG, Windows Forms, you poor *censored*!" or "So you are accessing Postgres directly? You should be using Entity framework".

It's just a litter of pointless buzzwords. Using those new technologies doesn't make the product better! Usually it just adds a bunch of pointless busiwork. Almost makes you think it's a conspiracy by developers so they can expand their estimates! . "Oh, yeah, FINE, Mr. Manager, sure we COULD just read the value from the database, but the proper way is to create a data adapter intermediary segmented accessor class, and construct instances using a multipattern segmented assembly factory. Then we can utilize jQuery and pattern-swap over the NoSQL MONGODB while asynchronously AJAXing a nearby Universal platform. And I'm not going to be responsible for problems that ARISE because we didn't write an appropriate universal segmented multipattern buffered adapter."
This thread just keeps going on.

Now about books and computers. Long before productive computers were built, books existed and laid the foundation for the ideas that led to computers.
If you go to a public library you will see a well organized collection of information that humans have acquired over the years. For a single individual, or even a group of persons, this would take many many years to acquire.

Books help you understand the reasons that people can either hate or love computers. There are books about computers that are not really about computers, but about why people want computers.
Here are a couple of books about computers that are not programming textbooks.

Computer power and human reason.
https://en.wikipedia.org/wiki/Computer_Power_and_Human_Reason

The Soul of a New Machine.
https://en.wikipedia.org/wiki/The_Soul_of_a_New_Machine

Anybody interested in computer science can benefit by reading either of the two publications listed above.
Quote from: BC_Programmer on January 12, 2016, 08:32:26 PM
It should be noted that Visual Studio does not support BASIC; rather the language it supports is Visual Basic .NET. It shares syntax and keywords with many BASIC dialects but it is quite a different platform and language. The reason I mention this is that BASIC tends to be associated with, uh, it's acronym, but realistically I don't think the language supported by .NET for Visual Basic is really intended for Beginners- not in the same sense as with BASIC. Kemeny and Kurtz would probably be rolling in their grave to hear the two associated.

That is not to suggest that it is a bad idea to use Visual Studio- C# and Visual Basic are as good as any other language, IMO. My advice to those who are trying to "choose" which language/platform to start with is that what they start with is less important then the fact that they actually get started.
FreeBASIC is another good alternative. I believe it might be a better option for Linux as (iirc) it can be run natively under Linux as well.
I can't find a reasonable source for the quote but I don't doubt that somebody said it. How many lines of code a product had was some weird chest-beating in the 90's.

Even nowadays anything older than a few years "should be upgraded"- but it makes no sense to do that if it already works. The software I work on is a C#, Windows equivalent to the old BASIC product. It worked well enough since the 80's and while it's hardly perfect, it was enough for them to do business. The reason we are making a new version is that it stopped serving that task because the OS vendor won't investigate, let alone patch a serious network stack problem.

Any time I mention my work on a programming forum, it's all "Dude, you should use WPF" and "OMG, Windows Forms, you poor *censored*!" or "So you are accessing Postgres directly? You should be using Entity framework".

It's just a litter of pointless buzzwords. Using those new technologies doesn't make the product better! Usually it just adds a bunch of pointless busiwork. Almost makes you think it's a conspiracy by developers so they can expand their estimates! . "Oh, yeah, fine, Mr. Manager, sure we COULD just read the value from the database, but the proper way is to create a data adapter intermediary segmented accessor class, and construct instances using a multipattern segmented assembly factory. Then we can utilize jQuery and pattern-swap over the NoSQL MONGODB while asynchronously AJAXing a nearby Universal platform. And I'm not going to be responsible for problems that arise because we didn't write an appropriate universal segmented multipattern buffered adapter."

The fella asked a question and I did not see a really good answer to it. I gave some suggestions, he is a beginner. I'm sure you have your favorite software just as I have my favorites but that means nothing to a beginner.

If you started programming in 85 or somewhere around there you had 1.44 & 1.2 meg floppies to work with. When I started in 80 my best had to go in a 160k floppy. Even working in the 90s and early 2000 anything I wrote I made to fit on a 360k floppy, and had to fit within 1.2meg with program, manuals, data structures, and any drivers. I taught some programming classes in the junior college and kids just went wild, redundant code or routines that did nothing. I'm sure you have seen some of that.

As far as the message that Bill Gates gave, I was there when Microsoft and IBM brought out OS/2 and the new IBM /2 computers systems with a new bus that did not last long.Perhaps I've misunderstood- I was merely trying to engage in friendly discussion on the subject.Visual Studio is free for educational and personal use. It does require some time to learn how to use it, *censored* is worth the effort. The OP hasn't been back since October. I'd suggest you are talking to yourselves at this point.


Discussion

No Comment Found