console.log ("Word learns to code!")

Everything todo with programming goes HERE.
Word
Reverse Adjust Outside Corner Grinder
Posts: 4258
Joined: Wed Jan 07, 2009 6:13 pm

console.log ("Word learns to code!")

Post by Word »

Just wanted to say that I'm slowly grasping what you guys were talking about in this topic :P

http://codecademy.com (the site has its flaws, but it's where I started) and some programming books have been really helpful. I've started with JavaScript and now I'm reading about C# and C++ (mostly C# because there's a nice guide about how to use it in Unity). A few questions:
Since a few friends of mine study computer science, I wonder if one can become just as good at programming without studying it at university or a similar institution*, given that one invests about the same amount of time and effort, but only uses internet resources? What kind of knowledge substantially improves your general programming skills (Lucifer suggested algebra would do that, but is there a lot of other stuff?)? Do you have to know how all the technical components of a computer work, or are some of them more "important" than others (since I'm not really interested in tweaking technical features of a PC, just making use of them - though I can see that a computer perhaps doesn't care about that difference)?

*I asked one of these friends already and he was like "of course, EVERYTHING we learn is important and greatly helps our programming skills, and we learn all the foundations!" but I like to think they're mostly justifying that they get a college degree for something they could probably just as well teach themselves at home, if they wanted to...(I also read Lucifer's reply in that thread, but wasn't sure in how far it was meant tongue-in-cheek)
User avatar
AI-team
Shutout Match Winner
Posts: 1020
Joined: Tue Jun 23, 2009 6:17 pm
Location: Germany/Munich
Contact:

Re: console.log ("Word learns to code!")

Post by AI-team »

Studying computer science and being a software developer (luckily) are two completely different things :P
  
 
"95% of people believe in every quote you post on the internet" ~ Abraham Lincoln
 
 
Word
Reverse Adjust Outside Corner Grinder
Posts: 4258
Joined: Wed Jan 07, 2009 6:13 pm

Re: console.log ("Word learns to code!")

Post by Word »

Hey Ai :) :) :) :-)
Thank you.
User avatar
sinewav
Graphic Artist
Posts: 6413
Joined: Wed Jan 23, 2008 3:37 am
Contact:

Re: console.log ("Word learns to code!")

Post by sinewav »

Oh, I feel perfectly qualified to answer this post! Word, as someone who is only a few step ahead of you I can probably give you some insight.
Word wrote:I wonder if one can become just as good at programming without studying it at university or a similar institution*, given that one invests about the same amount of time and effort, but only uses internet resources?
At first, one would think this question answers itself. "Of course success if guaranteed if you spent the same time and effort using the Internet! Everything is on the Internet!" But I think the real answer is "It depends."

As you probably know I do not have a degree in computer science. I am almost completely self-taught. Because of the Internet I was able to write the Adventures of TRON site. I even wrote a music tool that is included in a custom Linux distribution aimed at audio production. These are useful tools written by someone who writes code as a hobby.*

However, self-directed learning gives you a narrow, spotty view of the infinitely diverse programming landscape. A structured education can help fill gaps in understanding and can challenge the way you approach problems. A mentor can help you learn "best practices" and classmates can expose you to shortcuts and coding tips. Even if you don't go to a school, you should at least spend time with other programmers and work on projects together.

<aside>
I took an IT course last year that had a small section on coding. I learned an amazing amount in a short time. The professor thought my self-taught skills were strong enough that he hired me as an intern at a research facility. Now I work on software that is used worldwide in cancer research. Neat, huh!?
</aside>
Word wrote:What kind of knowledge substantially improves your general programming skills (Lucifer suggested algebra would do that, but is there a lot of other stuff?)?
Others can better answer this. I barely passed algebra. I believe my poor math skills prevent me from understanding more complex data structures and approaches to problem solving. That last bit is important. The art of programming is ultimately an exercise in problem solving. You start with input and arrive at output. How you get there is programming. Math does the same thing.
Word wrote:Do you have to know how all the technical components of a computer work, or are some of them more "important" than others (since I'm not really interested in tweaking technical features of a PC, just making use of them - though I can see that a computer perhaps doesn't care about that difference)?
I would think your natural curiosity would get the better of you! Please allow me to recommend a book to unlock the secrets of these wonderful machines... CODE: The Hidden Language of Computer Hardware and Software by Charles Petzold

You can have fun with programming without knowing hardware. You can probably be fairly successful without knowing hardware. However, knowing how the hardware works will help you better understand what you are writing and how to make your code more efficient. Again, programming is about problem solving, but ultimately a program needs hardware to live. When the program you write hogs all of your computer's RAM and CPU, knowing hardware will help you solve that problem. :)
Word wrote:...but I like to think they're mostly justifying that they get a college degree for something they could probably just as well teach themselves at home...
Maybe. In 2009 I was accepted to a University to study Computer Science, but life got too complicated during the Global Recession and I never attended. I still want that degree. I still want to challenge myself. I've done at least a dozen courses at Code Academy and other sites I can't recall at the moment. There is always something to learn. I believe I can learn it, but probably not as fast or as well outside of a University setting. I think school helps a lot.


* Technically I get paid to write code at my job and I have written websites for money as a freelancer, but I don't consider myself a programmer. My job title is more related to Information Technology than software development.
Word
Reverse Adjust Outside Corner Grinder
Posts: 4258
Joined: Wed Jan 07, 2009 6:13 pm

Re: console.log ("Word learns to code!")

Post by Word »

Sinewav, thanks for the detailed response (and the book recommendation)!
sinewav wrote:Maybe. In 2009 I was accepted to a University to study Computer Science, but life got too complicated during the Global Recession and I never attended. I still want that degree. I still want to challenge myself. I've done at least a dozen courses at Code Academy and other sites I can't recall at the moment. There is always something to learn. I believe I can learn it, but probably not as fast or as well outside of a University setting. I think school helps a lot.
Yeah, I can relate - most of my professors/fellow students say "there's no way one can learn all this stuff if one only reads books at home and doesn't attend lectures/takes part in excavations/spends a semester in a foreign country" (referring to archaeology of course) and I agree as far as practical experience is concerned; but in order to understand the basic, theoretical concepts, I think books and internet resources already help a great deal. Whenever there's some terminological stuff I don't understand, a simple wikipedia search helps, and I can learn at my own pace. I don't know whether I'd be able to keep my composure in a computer science lecture once I feel like I know what the lecturer is going to say next, I'd probably try to flirt with the girl sitting next to me or start drawing lightcycles (or, a few days ago, in a Spanish course, I learned this: if you pay attention the whole time, and say something to your neighbour which shows everyone around you that you understood what is going on, they ask for help until you yourself lose track of what was said :P).
Word
Reverse Adjust Outside Corner Grinder
Posts: 4258
Joined: Wed Jan 07, 2009 6:13 pm

Re: console.log ("Word learns to code!")

Post by Word »

Hey there, here's some sort of status update: I have to work on my master thesis now, but didn't forget about this. As long as I'm still matriculated, I can access all the Lynda.com/Video2brain video tutorials about 3D, programming etc., so I hope my understanding of these things continues to deepen :) Happy tronning everyone, I'm still checking the forums every now and then and it's good to see that a new 3d engine is appearing on the horizon behind the rim wall :P I'll try to contribute something once I have the time and skills.
User avatar
Lucifer
Project Developer
Posts: 8640
Joined: Sun Aug 15, 2004 3:32 pm
Location: Republic of Texas
Contact:

Re: console.log ("Word learns to code!")

Post by Lucifer »

I totally missed this thread, and having reread the other one and finally read this one, I think I should respond. :)
Word wrote:Since a few friends of mine study computer science, I wonder if one can become just as good at programming without studying it at university or a similar institution*, given that one invests about the same amount of time and effort, but only uses internet resources?
As far as "only uses Internet resources", I'm saying "no". I don't think studying at a university is required, but as sinewav pointed out, you have to spend time with other programmers at some point and just talk shop. The more often you do it, the better you get. Also, there are numerous articles out there (internet and print) and books and stuff that are probably worth more than you'll get from a university course, but you'll have to read, understand, and remember the content in a way that's more difficult than just taking a class.

Personally, I'm not truly self-taught at anything. I took a grand total of 6.5 years of music in public schools starting back in the fourth grade. I had learned to sing and to play the clarinet from teachers before I ever touched guitar. Likewise, as much as I was self-taught as a programmer starting around age 8 or so, I took a semester-long BASIC class when I quit the high school band that straightened up and shored up everything I'd learned. I followed that up with a year of Pascal. I haven't taken a programming class since then, but I would be lying if I said I never had any formal training.

So, if you have a semester to burn taking a basic skills programming class (preferably one using Python), it would be time well-spent. You'll get quite the jump off.

Conversely, my older son (16) has been learning programming through a combination of hands-on at-school activities, personal interest activities, and his old dad teaching him stuff. He's not taking any formal training but is still getting actual training.
What kind of knowledge substantially improves your general programming skills (Lucifer suggested algebra would do that, but is there a lot of other stuff?)?
Literally everything you learn. :)

More seriously, anything that involves breaking something down into parts and understanding the parts will be really helpful. For example, becoming a mechanic did a lot for me in terms of how to put programs together. But there's so much to programming, it really is something of an art form. A unique sort of art, similar to engineering (hence the job title "Software Engineer"), but an art nonetheless. So, like with any art form, studying other art forms will help you. Your archaeological experience will help you. Applying the scientific method is crucial to problem-solving in general. Studying music theory will help you. Anytime you get down to the nuts and bolts of a topic, device, machine, etc, you learn something that helps you become a better programmer.

Most of what you learn is how other people solved the problems they had, or in the case of studying the arts, how other people put together their message using the same tools you have available to you.

Troubleshooting anything, including a computer program, involves a certain amount of forensic-type thinking. You have to reconstruct what the program was doing at certain points in order to figure out why it behaved as it did, or crashed, or whatever happened that you're troubleshooting. So, your work in archaeology will directly apply in terms of mindset while troubleshooting.
Do you have to know how all the technical components of a computer work, or are some of them more "important" than others (since I'm not really interested in tweaking technical features of a PC, just making use of them - though I can see that a computer perhaps doesn't care about that difference)?
Lots of programmers don't know any of that crap. That's why they call the IT department to fix their computers just like anybody else in the company does. And I'm willing to venture that the vast majority of code written wouldn't be improved by having knowledge of how computers work.

Games, however, are fundamentally different from the vast majority of code that gets written. You do need to know how the monitor renders, how the video card functions, why video card memory matters, how the sound card produces sound (even to the point of knowing how speakers, microphones, and amplifiers work), etc. When you get to where you're optimizing code, knowing how the CPU caches work tells you what you need to know to break your code down into bits where the CPU can use it's cache-only cycles to work on your game. (Yes, I can explain that, if you need it, but it's outside the scope of this post :) )

In multimedia work, you need to know how movies are made, how they become digital, how video codecs work, as well as all the aforementioned sound stuff.

I think sinewav provided the best possible example of why you need to know this stuff in his app. So he's not the most experienced coder (or at least, wasn't when he started on that app), but he knew the problems that he needed to solve and had enough knowledge of how the hardware worked as well as how sound and music work that he knew what he needed to do to make the app. The programming part was just figuring out how to tell the computer what to do with all of that information in his head.
*I asked one of these friends already and he was like "of course, EVERYTHING we learn is important and greatly helps our programming skills, and we learn all the foundations!" but I like to think they're mostly justifying that they get a college degree for something they could probably just as well teach themselves at home, if they wanted to...(I also read Lucifer's reply in that thread, but wasn't sure in how far it was meant tongue-in-cheek)
I was both completely serious and completely tongue-in-cheek.
Image

Be the devil's own, Lucifer's my name.
- Iron Maiden
Word
Reverse Adjust Outside Corner Grinder
Posts: 4258
Joined: Wed Jan 07, 2009 6:13 pm

Re: console.log ("Word learns to code!")

Post by Word »

Thanks a lot for the insightful reply, Lucifer!
User avatar
sinewav
Graphic Artist
Posts: 6413
Joined: Wed Jan 23, 2008 3:37 am
Contact:

Re: console.log ("Word learns to code!")

Post by sinewav »

Word wrote:...tutorials about 3D, programming etc...
Cool! I am getting ready to dive in to 3D modelling again. I was never good at it, but I want to be competent enough to make objects for printing. Blender is not enough like a CAD program for this, but most 3D CAD programs are too complicated for a hobbyist like myself.
User avatar
Ratchet
Match Winner
Posts: 779
Joined: Sat Mar 15, 2008 5:55 am

Re: console.log ("Word learns to code!")

Post by Ratchet »

sinewav wrote:but most 3D CAD programs are too complicated for a hobbyist like myself.
I doubt it... you can probably easily get a copy of AutoCAD, Solidworks, or Inventor. I'd say that 30 minutes of exploration would be all it takes to generate your first meaningful model. I had no prior experience using any 3D software and it seemed fairly intuitive to learn for the first time.
Image
"Dream as if you'll live forever,
Live as if you'll die today." -James Dean
User avatar
delinquent
Match Winner
Posts: 760
Joined: Sat Jul 07, 2012 3:07 am

Re: console.log ("Word learns to code!")

Post by delinquent »

I learnt OO C# primarily from a book, and then added to that knowledge with experience in the workplace. I was never really one of those people who was avidly interested in coding specifically, I sort of found it along the way and realised it fitted very well into my character. That said, I had some existing experience with procedural BASIC before I looked at an OO language, so it wasn't a completely foreign language to me.

I've now successfully had a decent career ( I got laid off a couple of weeks ago when my company sold out to another one) based in programming and management and ideas and such, and I'd contest that it's not so much what you learn so much as how you approach the concept. There are so many facets to so many languages nowadays that it is difficult to learn one without beign exposed to another, hence the interchangeability of skill.

All that said, I have fairly little knowledge of machine code. My understanding of C++ goes little beyond adding headlights to arma, and with that in mind I suggest reading this SO question:

http://softwareengineering.stackexchange.com/a/96506


The reason being is that although there is a relative lack of programmers (at least in my country) at the moment, it does seem to be being filled by high-level coders. People who can fill the low-level requirement that indubitably will project will likely go on to be the forefront in the next generation of programming elite, regardless of age.
Word
Reverse Adjust Outside Corner Grinder
Posts: 4258
Joined: Wed Jan 07, 2009 6:13 pm

Re: console.log ("Word learns to code!")

Post by Word »

Thanks delinquent, I'll look into that!
@sinewav: I meant to reply earlier but somehow didn't: There's a free education version of most Autodesk programs, including 3DS and Maya. They're relatively easy to learn with youtube tutorials. I didn't really use them yet because I'm used to Cinema 4D, but they are quite similar. C4D is the easiest and most intuitive 3D program I know, and that's coming from someone who thinks Google Sketchup is complicated. The problem is that it's ridiculously expensive for the average consumer, but there's also a free student version (and some *other* ways to get it):
https://www.maxon.net/en/training/student-version/
User avatar
sinewav
Graphic Artist
Posts: 6413
Joined: Wed Jan 23, 2008 3:37 am
Contact:

Re: console.log ("Word learns to code!")

Post by sinewav »

Thanks, I will look into it!
Word
Reverse Adjust Outside Corner Grinder
Posts: 4258
Joined: Wed Jan 07, 2009 6:13 pm

Re: console.log ("Word learns to code!")

Post by Word »

Thanks again for the many helpful replies in this thread, especially to you three, Lucifer, sinewav and delinquent.
Thought I provide a quick status update while I'm here...I'm sitting in the museum most of the time (I have my own office until July, the floor is covered with old newspapers, pottery sherds and wooden boxes, the desk and shelves with paper and metal objects) and make drawings of archaeological finds for my master thesis, but I'm listening to all the lynda courses about programming and 3D whenever I can, and I already wrote a few Unity scripts (I bet there are more elegant and efficient ways to achieve the same things these scripts do, but at least they're working). I get paid for converting some aerial laserscans (LIDAR-files), which is pretty cool because, no matter how repetitive the task is, it feels useful and helps the staff to discover new archaeological sites or get a clearer view of the known ones.

Whenever I have some free time, I put together a 3D reconstruction of the mounted fortress I have to write my thesis about, as a bonus (not sure if I can finish it in time). I'm doing the Unity scripts in C#. A few weeks ago I had another course at university about 3D scanning for archaeological documentation and I asked the guy if he could make a scan of me. Now I got a high-res scan of my decrepit self that I can rig, animate and put in my Unity game (no clue if any museum visitor would play that.). :P I'm so glad I tried to make that Hall Of Fame years ago, the stuff I learned while doing that saves me a lot of time now.

Enough from me. I hope you're all well and healthy and have a relatively stable life (considering the political turmoil...). Sine, did you check out C4D? Lucifer, how is the book doing? And deli, do you have a job again? More importantly, how is everyone?
Last edited by Word on Thu Apr 13, 2017 8:20 pm, edited 1 time in total.
User avatar
Lucifer
Project Developer
Posts: 8640
Joined: Sun Aug 15, 2004 3:32 pm
Location: Republic of Texas
Contact:

Re: console.log ("Word learns to code!")

Post by Lucifer »

Haha, "how is the book doing?". Answer: It's not. And that was completely expected. I've shifted my marketing to focus on promoting my web comic under the reasoning that more traffic becomes more sales at some point. I'm also probably 2/3-3/4 of the way into a second book's rough draft, but right now focused on comics and getting practiced juggling again.
Image

Be the devil's own, Lucifer's my name.
- Iron Maiden
Post Reply