PDA

View Full Version : Anyone purely self-taught?



Pages : [1] 2 3

guitarscn
03-11-2008, 10:55 PM
Has anyone here taught themselves a programming language or multiple programming languages, all by themselves? Meaning no prior education on the topic, no school/classes in the field...just reading books and using whatever sources you can get from home? Do you think this is a better path or does it take longer to master the language in this way rather than going to school and learning? Especially since school isn't for everyone and sometimes learning at your own pace is good, but the fastest way to become an expert in a certain programming language? What is your idea of the "best" strategy to learn a language or multiple languages?

dra
03-11-2008, 11:35 PM
I've been learning on my own for a while, and I think it's completely possible to teach yourself programming without any formal classes or instruction. That said, I can think of more than a few times where I wished I had a mentor (and I still do) to help me understand the more difficult parts of learning something like C++.

brewbuck
03-12-2008, 12:03 AM
Has anyone here taught themselves a programming language or multiple programming languages, all by themselves? Meaning no prior education on the topic, no school/classes in the field...just reading books and using whatever sources you can get from home? Do you think this is a better path or does it take longer to master the language in this way rather than going to school and learning? Especially since school isn't for everyone and sometimes learning at your own pace is good, but the fastest way to become an expert in a certain programming language? What is your idea of the "best" strategy to learn a language or multiple languages?

I was going to tell you my experiences teaching myself, then in school, but I realized they're not relevant. Everyone responds to school, and teaching methods in general, differently. One thing I can say for sure is that you really only learn by writing code. You can read an entire book and understand it but until you can actually put thoughts into real lines of code you're not programming.

Find the parts which are most intimidating to you and ask somebody about them. Take pieces of code from other people and play with them. It doesn't matter what you're doing as long as you are working with code.

As far as multiple languages are concerned, there are a few basic facts. First, there are several major superclasses of programming languages, most of which you won't encounter unless you are doing hard-core computer science. Within each of these superclasses are dozens or hundreds of languages which share basic concepts with each other. It's sort of like the genomic tree of life, starting with kingdoms and moving all the way down to species. Just like closely related species, there are closely related languages.

Some of the most widely used and exposed languages today: C, C++, C#, Java, Perl, JavaScript, and PHP -- share inspiration with each other. Knowing one of them gives you huge leverage with the others.

laserlight
03-12-2008, 12:06 AM
I started off Javascript and PHP purely self taught. But that lasted only 2 years, upon which I was given the chance to taking Computing at GCE 'A' level. I took the subject, and that was also my introduction to C++.

NeonBlack
03-12-2008, 12:07 AM
I learned qbasic (I know...) in 8th grade all by myself. I didn't take C until I was a freshman in college, and I didn't go to class most of the time. The only good thing I can say about the instructor is that he taught the ansi standard to the t. What you said about moving at your own pace is very true. I was bored 90% of the time in the class. Sometimes I would finish the 2-week projects the day they were assigned. Everything I know beyond the class I learned on my own (The last project had to do with strings and file i/o. This was a 14 week course- HA!). So although it's nice to have someone in real life that can help you out, I would say that if you had a good book and he support of C Board, you could definitely learn by yourself.

zacs7
03-12-2008, 12:17 AM
I started teaching myself ASP at the start of highschool, then moved onto PHP, then C, and a bit of everything else. Wasn't until my last two years of highschool that we were 'taught' how to program (in VisualBasic mind you). So yes I am self taught, I'd say a lot, if not all of the 'pot-avoidance' skills in C come from this forum.

Now I'm stuck at Uni programming in Java -- I always avoided it for some reason, now I'm being taught it... it seems rather nice. Although I feel I know how to program in Java (oh so similar to C).

Mario F.
03-12-2008, 02:50 AM
I'm completely self-taught. In computer programming languages, that is.

matsp
03-12-2008, 02:54 AM
I'm almost self-taught. I took an evening class for a while, and I took a "extra" course at a university that was supposed to be 4 half-time terms, but I did 2 terms at once [level 1 and level 2 at the same time]. That was helpful, but I knew many of the things before starting the course, and only parts of it that I have little use for in my professional life was "new" [like Simula-67 and Databases].

--
Mats

CornedBee
03-12-2008, 03:15 AM
I learned first Lingo and later C++, Java and C# all by myself. I later got education in computer science, which undoubtedly has helped me a lot in programming, but the languages are self-taught.

whiteflags
03-12-2008, 04:50 AM
I'm self taught in a lot of languages also. I learned Visual Basic in college, though.

Elysia
03-12-2008, 07:28 AM
I'm pretty much self taught. Have used one book about C++, I think, but the rest is experience writing, finding and asking about it.
Classes may not always be good, seeing as some teachers teach pure nonsense to students. So classes are not guaranteed to put you on the right path.
What pretty much is, is writing code and getting experience from doing so.

matsp
03-12-2008, 07:33 AM
I'm pretty much self taught. Have used one book about C++, I think, but the rest is experience writing, finding and asking about it.
Classes may not always be good, seeing as some teachers teach pure nonsense to students. So classes are not guaranteed to put you on the right path.
What pretty much is, is writing code and getting experience from doing so.

Add to that working with others that have been writing code for longer than you have - that is a VERY good way to learn.

--
Mats

DanFraser
03-12-2008, 08:30 AM
I'm self-taught in C#. I investigated several languages and that seemed to me personally the easiest one to start off with. Luckily the degree I'm on now concentrates on C#, almost to the point of me having a by on those subjects!

Perspective
03-12-2008, 08:45 AM
just to add some contrast to the mix, I didn't know a thing about programming until I started university.

Neo1
03-12-2008, 08:50 AM
I'm 100% self-taught in C++, only help i ever got was in here, and in some books from the library and tutorials on the net. But then again, i'm not that good yet..

Dino
03-12-2008, 09:06 AM
With the exception of two different week-long in-house classes while working at IBM (assembler), I'm totally self taught in C, C++, Java, Rexx, Ruby, PHP, Javascript, (and SQL, HTML, CSS, yada yada).

I'll buy a book and get into it, type in the examples, run them, debug them, etc.

Next on the agenda - Objective-C.

matsp
03-12-2008, 09:08 AM
Next on the agenda - Objective-C.

I'm not aware of ANYONE using Objective-C... Are you?

--
Mats

tabstop
03-12-2008, 09:30 AM
I'm not aware of ANYONE using Objective-C... Are you?

--
Mats

Apple?

Dino
03-12-2008, 09:31 AM
Oh yeah - I'm on the Mac forums every day. LOTS of activity with that on the Mac. (obviously, only the Mac).

abachler
03-12-2008, 11:13 AM
I learned BASIC, asembly C/C++ win32 API, directshow, and many others ive probably forgotten, all self taught. I took a class in college on C/C++ but by then I already had 12 years experience programming.

CartoonLarry
03-12-2008, 11:53 AM
I am self taught.
I would have liked to have had formal training, but could not afford it.

prog-bman
03-12-2008, 01:01 PM
I am self-taught as well. Started off with C++, then had to pick up C#, vb6(ugh) for my job.

Mario F.
03-12-2008, 01:13 PM
just to add some contrast to the mix, I didn't know a thing about programming until I started university.

I'm pleased to see this one evidence Universities still forge careers.

guitarscn
03-12-2008, 02:43 PM
Well I am aiming to teach myself all the languages I want, with the help of some forums as well, of course. But I'll be picking up books on C, Perl, Python, Lisp, Java, HTML, PHP, and maybe some other basic stuff. I hope within 10-15 years I can be fairly fluent in all those languages.

Neo1
03-12-2008, 04:25 PM
Well I am aiming to teach myself all the languages I want, with the help of some forums as well, of course. But I'll be picking up books on C, Perl, Python, Lisp, Java, HTML, PHP, and maybe some other basic stuff. I hope within 10-15 years I can be fairly fluent in all those languages.

I don't think HTML is an actual programming language, and besides, it takes 10 minutes to learn the basics, and that's pretty much all there is to HTML - the basics.

Also, as soon as you're really good in one language it doesn't take long to learn another one, that's just about syntax. The hard part is the logic and algorithms and such...

brewbuck
03-12-2008, 05:00 PM
Well I am aiming to teach myself all the languages I want, with the help of some forums as well, of course. But I'll be picking up books on C, Perl, Python, Lisp, Java, HTML, PHP, and maybe some other basic stuff. I hope within 10-15 years I can be fairly fluent in all those languages.

It should take far less time than that to become fluent. But fluency isn't the whole story. For instance, I'm fluent in English but I'm not a literary genius. I don't write poetry that makes grown men cry, or anything like that.

It's pretty much the same with programming. You can get to the point of writing useful code rather quickly. Getting to "guru level" takes a lot longer.

brewbuck
03-12-2008, 05:01 PM
I don't think HTML is an actual programming language, and besides, it takes 10 minutes to learn the basics, and that's pretty much all there is to HTML - the basics.

I don't see why HTML isn't a programming language. Depending on what you write, the computer (specifically, the browser) will do one thing, or something else. Seems like programming to me. It's not an imperative language, more of a declarative one.

Elysia
03-12-2008, 05:05 PM
Here's a funny remark, though:
Some teachers teach that the "computer" does something. So when the auto complete function in Excel, the "computer" is smart enough to figure out fill out with.
But then again, it's the "program" that does it. The program figures it out. And the computer (or the processor) executes the code.
So which is it? The computer? Or the program?
Myself, I get kind of annoyed at when people say "the computer" because clearly it is the program's logic that does the things. But that's me. How about others?

Concerning HTML, I'm not really sure where to put it. It clearly isn't a programming language in regards to Javascript, VB, C++, PHP, etc. But it is used to control what is displayed on the page itself. It's not code. It's data or information that tells the browser what to display.
Is it really a programming language or simply a data format? I'm learning towards the latter myself.

dwks
03-12-2008, 05:10 PM
I would call HTML a "formatting language", not a programming language. To me, a programming language has to involve logic and conditions and that sort of thing.

I am almost completely self-taught. I say "almost" because I have been "taught" in the strictest sense of the word, but I didn't really learn anything from it.

mike_g
03-12-2008, 05:21 PM
It all depends on how you define a programming language. Languages line HTML, CSS, XML, and SQL don't do loops so often are not counted as programming languages. (On some list that I have seen anyway).

Mario F.
03-12-2008, 05:35 PM
I agree HTML shouldn't probably be considered a programming language. It's a container-based markup language. A programming language in the traditional sense, would force HTML to be able to alter the behavior of the computer. Such is not the case.

However HTML is no toy as it was suggested either. Markups have become increasingly more complex over the years. HTML and XHTML have high standards and best practices, they do take years to master and force the "programmer" to think logically and to structure their "code".

They are probably the closest you can get to a programming language without becoming one

zacs7
03-12-2008, 06:01 PM
I would call HTML a "formatting language", not a programming language. To me, a programming language has to involve logic and conditions and that sort of thing.

I agree, you wouldn't call the Microsoft Word format a programming language.

brewbuck
03-12-2008, 06:40 PM
It all depends on how you define a programming language. Languages line HTML, CSS, XML, and SQL don't do loops so often are not counted as programming languages. (On some list that I have seen anyway).

Prolog doesn't have loops either. In fact, Prolog shares a lot of traits with HTML. It simply specifies "what is," not "what should be done." And I doubt you'll find anyone who claims Prolog is not a programming language.

abachler
03-12-2008, 06:49 PM
IMO, and probably someone whose name means more than mine, to be a programming language it needs -

1. flow control
2. I/O

HTML doesnt have flow control, it definately has output, but im not sure it really has input, other than the fact that it was loaded and I guess constants.

mike_g
03-12-2008, 06:59 PM
HTML has forms.

Since most webites nowadays tend to use HTML, CSS, Javascript and PHP (Edit: or the ones I make anyway) I generally look at it on the whole and consider it programming.

Mario F.
03-12-2008, 07:28 PM
IMO, and probably someone whose name means more than mine, to be a programming language it needs -
1. flow control
2. I/O


With due respect to those people that is crap. A programming language needs to be defined with much more than just that. I'm surprised at how that "urban myth" has survived this long.

That just removes a bunch of declarative or purely functional programming languages of the list.



HTML doesnt have flow control, it definately has output, but im not sure it really has input, other than the fact that it was loaded and I guess constants.

HTML has no output or input. It has no flow of control. Neither does it have constants (as if it mattered). But neither did SQL prior to 99 and it didn't stop anyone from calling it a programming language. You can tell that to "those people " above. And not for one moment think I don't know who wrote it. But as usual, it was misinterpreted.

The reason behind calling HTML a programming language is mostly a matter of prejudice or praise, in my honest opinion. Nobody can convince me a professional developing a website in pure (X)HTML/CSS can't be called a programmer. But it really matters little to me if he couldn't. I did it for a long time and I was faced with the exact same situation I was faced when using "programming languages"; problem solving.

DarkAlex
03-12-2008, 07:32 PM
I taught myself VBA, HTML and VBScript using books, C and C++ initially using books and the Internet and later took a two-week long programming class that had to do with C++ and C last summer.

mthemapc
03-12-2008, 07:47 PM
I agree HTML shouldn't probably be considered a programming language. It's a container-based markup language. A programming language in the traditional sense, would force HTML to be able to alter the behavior of the computer. Such is not the case.

However HTML is no toy as it was suggested either. Markups have become increasingly more complex over the years. HTML and XHTML have high standards and best practices, they do take years to master and force the "programmer" to think logically and to structure their "code".

They are probably the closest you can get to a programming language without becoming one

YEAH, i completely agree

whiteflags
03-12-2008, 08:03 PM
It would be rather funny if HTML turned out to be Turing complete. That would convince the naysayers, I suppose, but I couldn't care less either way. I don't think HTML would ever achieve that feat on its' own two legs.

brewbuck
03-12-2008, 08:04 PM
IMO, and probably someone whose name means more than mine, to be a programming language it needs -

1. flow control
2. I/O

Your exposure to computer science is woefully incomplete if you believe that "flow control" has anything to do with programming.

Some of the most powerful languages around -- Scheme, for instance -- don't have loops, they don't have if-else statements, they don't have assignment statements, they don't even have variables, and yet people skilled in these languages will absolutely code circles around you.

JaWiB
03-12-2008, 09:12 PM
I'm another mostly "self-taught," though to be fair the boards here taught me a lot of what I know. I started learning during high school, I guess, and now I've taken one programming course at my university that taught me almost nothing, and a few physics courses that used some type of programming. I can tell you that programming is definitely useful if you want to major in physics (or probably any scientific field, for that matter)

Neo1
03-13-2008, 12:20 AM
However HTML is no toy as it was suggested either. Markups have become increasingly more complex over the years. HTML and XHTML have high standards and best practices, they do take years to master and force the "programmer" to think logically and to structure their "code".


Well, if you're looking into making completely valid XHTML and CSS, then yes, that'll take some time. I was simply saying, learning the concepts of HTML takes no time, someone who has never tried HTML before can have a finished (although simple) webpage in a matter of minutes.

CornedBee
03-13-2008, 02:27 AM
I think the best definition for "programming language" is "a language that can be used to solve computational problems". This includes all the declarative languages like Scheme, Haskell, Prolog, XSLT, etc. and excludes markup languages like HTML.
An equivalent definition is "a notation for writing programs".

Good HTML/CSS is quite complex, but that doesn't make it programming.

laserlight
03-13-2008, 03:06 AM
I think the best definition for "programming language" is "a language that can be used to solve computational problems".
That may still be rather loose though. For example, we can describe algorithms in English, but generally English is not thought of as a programming language. Perhaps we could include the idea of "intent", but I am not sure if XSLT would qualify in that case, despite being Turing complete.

CornedBee
03-13-2008, 03:47 AM
We can describe the algorithms in English, but there currently is no computer that will successfully execute them, so the problem cannot actually be solved.

Mario F.
03-13-2008, 05:29 AM
We can probably agree a complete, bounded, definition is not possible. I agree with your description. But it still leaves room for debate.

I've been faced with computational problems when writing HTML many times before; The HTML <link> tag is used to define the relationship between two documents. They are needed for many things; to have the browser display an icon on the address bar; to define what device a document should be displayed on (handheld, tty, print, braille, aural, ...), to define content-types and charsets, to include stylesheets.

HTML sole purpose in life is to provide content with new and correct semantics in the context of the parser used to interpret it. In this context how can anyone think of it as a programming language? However, tags like <div> and <span> take the markup to a new higher level in which it is possible to define our own new semantic tokens and attribute them to the content. The decision to do so, or not, coupled with how and where it should be done, is largely based on our knowledge of the browser rendering engine (the HTML "compiler") and the need or not alter how the content is to be rendered. This is too solving a computational problem.

For this reason I'll end the way I started; We can probably agree a complete, bounded, definition of what is a Programming Language is not possible anymore. It becomes easier today to say what is not a programming language, than to say what it is.

I do agree HTML is not a programming language. But that is mostly based on my own (at the present time and probably skewed) view of what one should be. And that always includes a compiler or interpreter and the ability to perform the following operation x + y. Other may not agree. And they will be as right.

abachler
03-13-2008, 08:53 AM
With due respect to those people that is crap. A programming language needs to be defined with much more than just that. I'm surprised at how that "urban myth" has survived this long.



Wow, calm down Mario, noone said those were the only requirements, but those are two absolutes, without them it cant be a programming language. Although you can still program with a scripting language.

IMO its not a programming language unless you can write a compiler that can compile the language it was written in.

mike_g
03-13-2008, 09:15 AM
Theres one thing with HTML; its static which makes it perfect for generation using tools like dreamweaver. That way you never even have to look at the code. Fair enough dreamweaver cost an arm and a leg plus a kidney or two, but the product is less likely to have errors in it than something hand coded and it make a job as an HTML coder kind of obsolete.

In contrast I never use the Netbeans form designer. Not that its bad; its actually very nice, but when the content is likely to change GUI design tools cant handle this stuff well.

Mario F.
03-13-2008, 09:32 AM
Fair enough dreamweaver cost an arm and a leg plus a kidney or two, but the product is less likely to have errors in it than something hand coded and it make a job as an HTML coder kind of obsolete.

I would say HTML WYSIWYG editors are the main responsible for the general feeling W3C has been talking to brick walls all this time.

It you want standards compliance and accessibility in one go, you do it by hand. Dreamweaver is no different than any other tool that writes code for you, be it HTML or C++. In the end, the code sucks and becomes a nightmare to maintain, and it isn't standards compliant or does it obey accessibility guidelines, no matter the claims.


Wow, calm down Mario, noone said those were the only requirements, but those are two absolutes, without them it cant be a programming language. Although you can still program with a scripting language.

I was calm. I've seen however that quote numerous times. It was taken out of context and used as a means to say what a program language is, when the intention was to say what a programming language should be. It's really not your fault. It has been conveyed that way into our minds.

I believe it was Stroustrup who said that. Can't really be sure. And yet on C++ Programming Language, he has the following to say on 1.3.2 Philosophical Note (note the title and how ironic it now seems since he too agrees it is a matter of philosophy):

"A programming language serves two related purposes: it provides a vehicle for the programmer to specify actions to be executed, and it provides a set of concepts for the programmer to use when thinking about what can be done."

If you agree we can define a programming language by looking at its objectives (and I believe we can), we see how that contrasts to the IO/FLOW quote that is so widespread.

mike_g
03-13-2008, 09:38 AM
I would say HTML WYSIWYG editors are the main responsible for the general feeling W3C has been talking to brick walls all this time.

It you want standards compliance and accessibility in one go, you do it by hand. Dreamweaver is no different than any other tool that writes code for you, be it HTML or C++. In the end, the code sucks and becomes a nightmare to maintain.
Well what is HTML now? Since all the formatting has been carted off to CSS its just a handful of tags defining different elements and including some external files. Theres not a lot to HTML that the tools can screw up. CSS is another issue however.