View Full Version : Learning programming
Nehru
14th June 2011, 04:20
Comrades,
Is it possible to learn programming when one has no prior knowledge at all? Where does one start, and is it possible to learn quickly? What programming languages are useful at this time?
Thanks,
RedMarxist
14th June 2011, 04:38
Well, for me I learned python, mainly because I saw it as a hobby. I'm not going to get a job as a programmer. I started by reading every tutorial book, website I could about it. I learned the syntax, just like learning Marxism(one never stops leaning it) I read and read and read.
Yes, you can have ZERO experience and still learn programming. recommended languages are Python, C++(learned a lot of it from modding computer war strategy games). however, you can not learn quickly. remember that. Can you learn Marxism quickly, of course not.
If you own it, I recommend modding Hearts of Iron or Europa games, by paradox. Why-its damn easy to do. I'm working on a huge mod called A World To Win: What if the communist revolutions in Europe had succeeded(ie Germany, Italy, etc.)
http://forum.paradoxplaza.com/forum/showthread.php?539095-Upcoming-Mod-A-World-To-Win&
Steve_j
14th June 2011, 10:32
Everyone who learns programming has no prior knowledge at some point, so of course you can.
I usually work in graphic based environments for creative work but an interest in physical computing is pushing me in the direction of code, am currently looking at processing (a simplified java language) for software and the arduino (predominately C derived language) for hardware.
I think throwing yourself into learning programing is a great idea, as can be a very useful tool to have at your disposal but it might be a good idea to pick a language that is geared towards your interest.
ken6346
14th June 2011, 11:03
Certainly - I'd suggest Java, although Python would be fine to learn straight off the cuff too. Java's not an awfully difficult language to learn, and there are resources for it all over the internet. It also has a very large API (which is basically a library of pieces of code that have already been written to do certain tasks - it saves a lot of time if you would otherwise have to write thousands of lines of code to accomplish a particular task), and it is object-oriented, which makes things, in my simple but honest opinion, much easier for us all.
graymouser
14th June 2011, 11:21
Learning Java isn't a bad way to go. It'll familiarize you with the syntax which is useful from JavaScript on down to C++ and C#, which have great similarities.
The big question is what kind of programming you want to do; Java is going to be less web-based than say learning PHP with MySQL. I'd recommend the latter if you're more interested in doing web programming. It's not a tenth as robust as Java but it can get a lot done, and it's pretty easy to write web pages with code in them and learn how to make a database work with it.
At its heart programming is basically problem-solving. If you enjoy that, you can learn to program. If you're serious about it, I would stick with either Java or PHP until you get the hang of it, and then switch to the other. Once you have both paradigms down (Java will have you doing object-oriented programs, PHP will have you doing database-driven web sites) you will be able to adjust to pretty much any other programming language. As much as I love Python I would steer clear of it until after Java, it's more important to get your fundamental concepts down.
I started with Visual Basic then passed to Pascal and finally C++.I had no prior knowledge of any programming language beside some basic html.Of course i learned first 2 in school and 3rd one in uni, but i do think C++ would be a good place to start, as well as Java, it wouldnt be too difficult to learn either(they actually share similarities) if you focus on it, but it will take time and your "dedication" to go deep and learn the language for good.Basics are pretty simple i would say, but if you want to get in depth programming you will have to be dedicated to it.;)
Dr Mindbender
14th June 2011, 12:02
Comrades,
Is it possible to learn programming when one has no prior knowledge at all? Where does one start, and is it possible to learn quickly? What programming languages are useful at this time?
Thanks,
The best language probably depends on what you are trying to do. Different languages serve different purposes better than others.
StoneFrog
14th June 2011, 12:24
I'm self taught like most, starting off with C++, but i really matured as a programmer with Pascal. The main languages i know are C++, Object Pascal and Python; on top of that i know some ASM32 and Java. To start off i'd either go Pascal or Python, both being a strong typed language its much better for learning purposes.
Pascal not being used too much anymore, but since its concept was to be used as a teaching language i find it really good to develop skills on. Its as strong as C++, but it forces you to have good programming habits.
Python has become a really versatile language, its a scripting language, so very easy to learn. It works well with C and C++, i have in the past made programs which interchange between Python and C very well. Python is a very good tool to have, and even if its not the first language you learn its well worth picking it up anyway. Python has a huge amount of tutorials to learn off, which is great.
Both Python and Pascal don't fit into what is known as the C-Family, these are languages which use a C like syntax. So its a down side, but all the concepts are the same.
If your like me where you prefer to learn "from the ground up" starting at low level concepts or once you've become comfortable to a degree with programming. A book called Programming from the ground up, imo is a must read. The best programming book i've ever read, there are free copies i think around.
OT: wow didn't know so many coders were about here, Left Coders Unite lol.
Rowan Duffy
14th June 2011, 12:43
I'd strongly disagree with the posters who claim anyone should learn Java as a first language. Java is a terrible language from the point of view of simplicity and clarity. It's vastly more complicated to do simple things than it needs to be.
I would recommend a language with a "listener" where you can have interactive sessions. I think it's much easier to get a handle on how programming works this way.
My suggestions for a first language would be either:
1. Python
2. Scheme (try PLT's Dr. Racket)
I formulate this opinion not only from having learned and programmed professionally in Fortran,C,C++,Java,Basic,Python,Pascal,Haskell,ML, PHP,SQL,prolog, scheme and lisp, as well as writing my own programming languages and optimising compilers - but more importantly, as someone who has taught novices how to program in an environment where the particular programing languages popularity as an industry language did not matter. It is more important to get the basic ideas of computation first.
My opinion is that Java et al. are better learned as a second language and that it is not difficult to do so after having a general understanding of programming. The particular applications and specific utility of various different languages come into play easily after you have mastered the basic ideas.
Zealot
14th June 2011, 16:36
Every language has its uses, Python is great but if you want to learn a language that can produce quick results and interfaces it would be better to start with .NET or C#. They are object-oriented as opposed to Python which is good for writing exploits and scripts. It is possible to have object-oriented Python programs but it is not commonly done. Everyone will have a different opinion on this so you really just have to go for what you think is good for you.
StoneFrog
14th June 2011, 21:14
Every language has its uses, Python is great but if you want to learn a language that can produce quick results and interfaces it would be better to start with .NET or C#. They are object-oriented as opposed to Python which is good for writing exploits and scripts. It is possible to have object-oriented Python programs but it is not commonly done. Everyone will have a different opinion on this so you really just have to go for what you think is good for you.
I will have to disagree on how you've described python. Most people i see write Python with OOP, unless its just a quick fix script. Major Python projects are OOP, take django for instance. IMO python favors OOP, though not to the degree of Java where everything is an object.
graymouser
14th June 2011, 21:24
Python allows you to do object oriented programming. Which is a good thing. But Python is a lot looser with things and I don't think is an ideal beginner's language. The reason folks are recommending that the comrade learn Java is because Java makes you do OO programming - which is a better way to do coding. You write more robust code when you do objects from the word go.
As far as starting in the .Net framework, I'd say that C# would be better. Mostly because it's easier to learn VB syntax later - I mostly do VB.Net programming professionally, although I have to do some VBscript and I maintain one ColdFusion site for some ungodly reason. C# will teach you the C/Java way of doing stuff, which has more applications than VB. And prospective employers look highly on C# skills since it indicates more of a serious programming background whereas VB for a long time meant "I learned how to throw together programs."
Tablo
14th June 2011, 21:48
I also think python would be a good starter language. I've learned vb6, java, python, html, and various other scripting languages. Python has some nice and simple syntax and it is a pretty useful language. From there I would focus on the big languages like c/c++ and java. Starting with a simple syntax lets you focus on much more important aspects of programming and allows you to focus more on developing good programmer discipline. I would NEVER waste your time on any form of vb. It is a near useless language that software developers rarely use.
Spawn of Stalin
14th June 2011, 23:36
I have a q...
Which programming language would be best for a beginner to write very basic standalone audio programs, I want to be able to do things like pitch samples according to my own custom parameters and change bitrates, just basic stuff really. I'd possibly like to make a basic interface for these programs. And do you think I would be able to pick it up quickly? I have a ton of experience in HTML and Javascript for web and picked that up quite easily (self taught) but writing software is whole different ballgame, no?
internasyonalista
15th June 2011, 00:15
I'm not sure if I'm not off-topic. I'm currently learning database programming using VBA via ms access 2010 for a living ( I hope!). But I'm still a beginner as far as VBA is concern. ny suggestion about sites, free ebooks or videos on VBA programming for ms access database is much appreciated.
Another point, is ms access/VBA the best choice for database programming?
Kuppo Shakur
15th June 2011, 01:20
Well, looks like everyone already beat me to jumping in and shouting "PYTHONPYTHONPYTHON", so I guess I'll try to share some other advice:
If you do start getting into the more complicated languages, don't be discouraged. Just be patient with them and learn about it as you go, bit by bit. All you have to realize is that languages like C or even Assembly aren't actually any more logically complex than Python.
Nehru
15th June 2011, 03:12
Thanks, comrades. Three questions:
1) What is python normally used for?
2) Where can I find a free online tutorial, something easy-to-understand but comprehensive?
3) Which software to download?
Thanks,
G
StoneFrog
15th June 2011, 09:28
1. Python is used for many things, its kinda the jack of all trades imo, Frameworks like django you can use it more or less like PHP for websites and database use. You can use it for GUI programming, easy mock ups. I normally either use it for prototyping my projects, or use it as a link into my C libraries as a more scripting language(where i can change the functionality of what needed to be done rapidly). If you want to automate something its very good for, web crawling etc..
2.Python's site will have the most thorough tutorials and documentation, but may be too in-depth. HERE (http://www.python.org/doc/)
Also i think this might be good, i remember watching a few of his videos.
HERE (http://www.youtube.com/watch?v=4Mf0h3HphEA&feature=BFa&list=SPEA1FEF17E1E5C0DA&index=1)
I would recommend using a mixture of both, since the video doesn't go into a lot of depth, but you'll find good info on the Python site.
3. You'll need to download the Python interpreter, there are 2 main lines of Python interpreters the 3.x and 2.x. I think the latest ones are 2.7 and 3.2, just download the 2.7 one since its more compatible with tutorials. It comes with IDLE which you can use to write your programs.
You cane use other IDE(Integrated Development Environment) or text editor to write programs. But thats something you'll figure out what you want later.
graymouser
15th June 2011, 11:33
If you're looking for a tutorial, I used Dive Into Python (http://diveintopython.org/) which is open-source, free and has a fairly good reputation.
StoneFrog
15th June 2011, 11:48
If you're looking for a tutorial, I used Dive Into Python (http://diveintopython.org/) which is open-source, free and has a fairly good reputation.
Isn't that more for already people who can program?
Steve_j
15th June 2011, 21:30
I have a q...
Which programming language would be best for a beginner to write very basic standalone audio programs, I want to be able to do things like pitch samples according to my own custom parameters and change bitrates, just basic stuff really. I'd possibly like to make a basic interface for these programs. And do you think I would be able to pick it up quickly? I have a ton of experience in HTML and Javascript for web and picked that up quite easily (self taught) but writing software is whole different ballgame, no?
Given what you want to achieve i would steer you in the direction of a visual based programing environment like max msp (brilliant support and my personal fav), reaktor or pure data (freeware).
But if you want code there are plenty of options, supercolider seems to be pretty popular with people i know.
Have a look here for an overview of the different options http://en.wikipedia.org/wiki/Comparison_of_audio_synthesis_environments
tracher999
16th June 2011, 15:13
http://www.w3schools.com/
this gonna help 4 shure:)
NewLeft
17th June 2011, 01:54
I never found Python easy to learn.. Personally, I picked up C# easily since it's based on ECMA like JS. I am still trying to learn it but the learning curve isn't too bad.
t.shonku
1st July 2011, 07:24
Comrades,
Is it possible to learn programming when one has no prior knowledge at all? Where does one start, and is it possible to learn quickly? What programming languages are useful at this time?
Thanks,
Yes you can learn programming even if you have no prior knowledge start out by learning C then later go into C++ and Java etc etc, If you learn C you would really have accomplished something !
I myself had no prior knowledge but learned C in 3 weeks or so !
All you need is a good self study book,many books exists in market but most of them create more confusion than do good, I refer you a book called "Beginning C from novice to professional" by Ivor Horton , this book is all that you will need to learn.
Best way to learn is to write down your code then save,compile and execute it to find out if it works. If there is any error your compiler would let you know.
Happy Coding :cool::cool:
AnonymousOne
1st July 2011, 16:27
Is it possible to learn programming when one has no prior knowledge at all?
Yes, it is, how do you think people started learning? :P The big thing is that you need to make sure you're up to a basic standard of mathematics, nothing too advanced just some basic algebra. I'd reccomend something like Khan Academy if you feel you might want to brush up on Algebra.
Where does one start, and is it possible to learn quickly? What programming languages are useful at this time?
I reccomend Python or LISP. I'd probably say Python since there are more resources for it and it's more of an active language but I read a LISP book that did a great job explaining programs and data (more theory) in a great way.
For python I'd reccomend "Learn Python The Hard Way" it's a great introduction to Python and also forces you to learn through discovery with it's "Extra Credit" content. The book can either be bought as softcover, hardcover, pdf/epub, or you can read it for free on the website.
http://learnpythonthehardway.org/
He also offers an online course based on the book for $250 (you really don't need to but the lectures are fairly entertaining).
For LISP, I reccomend Structure and Interpretation of Computer Programs. It can be read for free here: http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-4.html
It's a fascinating and lively book in fact no matter what programming language you choose read the first chapter. Here's an excerpt:
A computational process is indeed much like a sorcerer's idea of a spirit. It cannot be seen or touched. It is not composed of matter at all. However, it is very real. It can perform intellectual work. It can answer questions. It can affect the world by disbursing money at a bank or by controlling a robot arm in a factory. The programs we use to conjure processes are like a sorcerer's spells. They are carefully composed from symbolic expressions in arcane and esoteric programming languages that prescribe the tasks we want our processes to perform.
A computational process, in a correctly working computer, executes programs precisely and accurately. Thus, like the sorcerer's apprentice, novice programmers must learn to understand and to anticipate the consequences of their conjuring. Even small errors (usually called bugs or glitches) in programs can have complex and unanticipated consequences.
Powered by vBulletin® Version 4.2.5 Copyright © 2020 vBulletin Solutions Inc. All rights reserved.