What can I do with coding skills?

A place to discuss the implementation and style of computer programs.

Moderators: phlip, Moderators General, Prelates

NuclearTide
Posts: 14
Joined: Wed Mar 05, 2008 4:31 am UTC

What can I do with coding skills?

Postby NuclearTide » Mon Apr 04, 2011 3:05 am UTC

I'm in my second semester of college and I'm currently taking an intro Java course (I never programmed before college, and I started with C last semester). So I know the basics of programming, but something that's really been bothering me is that I don't know how this applies in the real world. What do you actually do with Java? I have a vague idea of programmers writing programs that do cool stuff (like games), but how do you get to the point where you can use your knowledge to write programs that matter? And to be honest, I don't really know much of the inner workings of a computer. Does anybody have any recommendations for books I should study or programs I could write?

transient
Posts: 65
Joined: Sat Jul 25, 2009 3:51 am UTC

Re: What can I do with coding skills?

Postby transient » Mon Apr 04, 2011 4:38 am UTC

Computer science applies to, essentially, every other field of study. Seriously. Google "[field you are interested in] computer science" and you'll probably get something interesting.

The cool thing about computer science / programming is that it's an extremely powerful creative tool. It's akin to painting; with enough time and skill, you can paint anything; with programming, you can create practically anything.

Writing programs that matter? In what sense? You could contribute to an open source project, or work at a company like Google where your software will be used by many millions (billions?) of people. The cost for mistakes is extremely low in programming, so you can become a valuable asset by just programming something that interests you (be it a game, image editor, whatever captivates you).

If you want to know more how a computer works, learning assembly (NASM, etc) will prove extremely helpful. Look into compilers, virtual machines, .... Wikipedia has a wealth of information regarding computers.

User avatar
sourmìlk
If I can't complain, can I at least express my fear?
Posts: 6393
Joined: Mon Dec 22, 2008 10:53 pm UTC
Location: permanently in the wrong
Contact:

Re: What can I do with coding skills?

Postby sourmìlk » Mon Apr 04, 2011 4:44 am UTC

You can do anything. See every piece of software on your computer? All the dynamically generated data being displayed on every webpage? Only through coding.
Terry Pratchett wrote:The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.

squareroot
Posts: 548
Joined: Tue Jan 12, 2010 1:04 am UTC
Contact:

Re: What can I do with coding skills?

Postby squareroot » Tue Apr 05, 2011 2:51 am UTC

While of course it's valuable professionally, like transient said, it's a tool you can apply to just about anything. If you use Facebook, you might've seen the script circulating to select all your friends; if you're well versed in HTML/Javascript, you might be able to write that kind of thing yourself in 10 minutes. Have a bunch of files that need to be renamed or something in a certain way? (say, "photo_001"-"photo_193" turned to "Vacation '11 1"-"Vacation '11 193") Bash/Command-line scripting will do you well. Have some specific set of numbers you need to quickly process, and don't have a calculator function or piece of software for it? Write a program to do it for you. On a more fun basis.... want to make your own image transforms (like turn blue into red,vice versa, and then invert the green)? Want a poker calculator, using as much data as possible? Make them! :D Case in point: This week I wrote a tiny program to load a file, pixel-by-pixel, into a drawing program on Facebook. Pixel-perfect image or Rick Astley, hit "send"... :lol:
<signature content="" style="tag:html;" overused meta />
Good fucking job Will Yu, you found me - __ -

User avatar
khakipuce
Posts: 33
Joined: Thu Apr 08, 2010 9:24 am UTC
Location: UK
Contact:

Re: What can I do with coding skills?

Postby khakipuce » Tue Apr 05, 2011 8:18 pm UTC

Java is one of the most widely used languages in business these days. Everything from financial apps to CAD tools to some pretty heavy weight modelling software is written in Java (I know because over the last 10+ years I have coded all those things in Java for real commercial applications). Add to that the fact that Andriod uses it (or something very, very similar :wink:) and you have a pretty major language.

The thing is that you don't really see much Java on your desktop, it tends to be serverside.

User avatar
Yakk
Poster with most posts but no title.
Posts: 11128
Joined: Sat Jan 27, 2007 7:27 pm UTC
Location: E pur si muove

Re: What can I do with coding skills?

Postby Yakk » Tue Apr 05, 2011 8:40 pm UTC

Computer Science is the automation of intelligence.

This doesn't mean it is "artificial intelligence". What I mean is that it lets someone make the kind of decisions that an intelligent person would do, and automate it.

Much like how a car automates travel, a jackhammer automates using a sledgehammer (or other tool) to break something, a fan automates waving a piece of paper to cool yourself (or someone else) off, a dishwasher automates washing dishes, etc.

Renaming files: the simple way to rename files consists of interacting with each file, working out how you want it renamed, and then typing it in manually.

With code, you can encapsulate your decision into some code, hook the code up to some API for file manipulation, and let'r'rip.

Now, you'll notice that jackhammers and sledgehammers are actually different things -- there are applications for sledgehammers that jackhammers are not all that good for. This gap in the world of computer science is called the field of "artificial intelligence" or "the kinds of intelligent actions we haven't figured out how to automate yet".

Even if the jackhammer is the better tool, sometimes what you have is a sledgehammer. While a competent computer scientist can create a "jackhammer" out of random parts, the effort to make the jackhammer might be greater than the saved effort from using it over the sledge. So you use the sledge. This refers to the fact that making code that automates an intelligent decision might be much harder than just making those decisions manually.

As it happens, it is far far easier to automate intelligent decisions that are "repetitive". In that case, you can set'er up and let'er rip.
One of the painful things about our time is that those who feel certainty are stupid, and those with any imagination and understanding are filled with doubt and indecision - BR

Last edited by JHVH on Fri Oct 23, 4004 BCE 6:17 pm, edited 6 times in total.

User avatar
sourmìlk
If I can't complain, can I at least express my fear?
Posts: 6393
Joined: Mon Dec 22, 2008 10:53 pm UTC
Location: permanently in the wrong
Contact:

Re: What can I do with coding skills?

Postby sourmìlk » Wed Apr 06, 2011 4:15 am UTC

khakipuce wrote:Java is one of the most widely used languages in business these days. Everything from financial apps to CAD tools to some pretty heavy weight modelling software is written in Java (I know because over the last 10+ years I have coded all those things in Java for real commercial applications). Add to that the fact that Andriod uses it (or something very, very similar :wink:) and you have a pretty major language.

The thing is that you don't really see much Java on your desktop, it tends to be serverside.


CAD? Seriously? That seems like it could get rather heavy duty for something like Java. The most resource-intensive Java program I've seen is probably minecraft.
Terry Pratchett wrote:The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.

User avatar
khakipuce
Posts: 33
Joined: Thu Apr 08, 2010 9:24 am UTC
Location: UK
Contact:

Re: What can I do with coding skills?

Postby khakipuce » Wed Apr 06, 2011 12:12 pm UTC

Java just ain't that slow, often it's as fast as C and it's an awful lot cheaper to chuck more processing power at the problem than it is to spend weeks optimising. Especially when you consider that the out come of optimistion is uncertain.

User avatar
Steax
SecondTalon's Goon Squad
Posts: 3038
Joined: Sat Jan 12, 2008 12:18 pm UTC

Re: What can I do with coding skills?

Postby Steax » Wed Apr 06, 2011 1:06 pm UTC

Not always. Optimizing certain things (like complex calculations) can result in things running up to a couple magnitudes of time faster; you can't just latch on more processing power. Also, optimizing is free (hardware-wise). It's a "why not?" kind of thing. Then, of course, you could chuck in more processing power and optimize code, getting you a lot further then either option alone.

I've never seen a complex CAD version use Java though, and honestly I'm not sure I'd want to use one. I've always felt that Java is significantly slower than other languages.

On the topic itself, one important aspect some people miss while learning to program is that programming isn't the whole deal. It's the underlying technology that makes it possible, yes, but it's not going to magically come up with solutions. Like any "useful" invention, solutions grow from problems. So find problems you find in the world around you and try finding a way to make it easier with your new powers. It's tempting to find something to make and churn out code, but without a clear concept (and problem to help!), you'll get nowhere. This is why some people prefer to start with games, where the problem is more open and there are more options, but I think it's not always a good choice.

Go find things you can improve on. And here's the key: if you ever find yourself thinking "but I don't know how to do (.+?) yet", be quick to turn that into "I need to learn $1!" You'll soon want to learn all sorts of nifty new things. "How do I manage all my belongings? A file?" can lead you to learning to use a database. "How do I manage things by location?" can help you learn geolocation. "How do I update my data online?" leads you to setting up networking functionality. That kind of stuff lets you grow.
In Minecraft, I use the username Rirez.

User avatar
headprogrammingczar
Posts: 3072
Joined: Mon Oct 22, 2007 5:28 pm UTC
Location: Beaming you up

Re: What can I do with coding skills?

Postby headprogrammingczar » Wed Apr 06, 2011 1:29 pm UTC

Java only gets as fast as C if you give it enough time to run. The JRE has significant startup costs, and it has optimizations that require watching the code run for a while.
<quintopia> You're not crazy. you're the goddamn headprogrammingspock!
<Weeks> You're the goddamn headprogrammingspock!
<Cheese> I love you

User avatar
tipo test
Posts: 66
Joined: Sun May 23, 2010 12:15 pm UTC

Re: What can I do with coding skills?

Postby tipo test » Wed Apr 06, 2011 4:18 pm UTC

NuclearTide wrote:What can I do with coding skills?


Shitloads of money.

User avatar
sourmìlk
If I can't complain, can I at least express my fear?
Posts: 6393
Joined: Mon Dec 22, 2008 10:53 pm UTC
Location: permanently in the wrong
Contact:

Re: What can I do with coding skills?

Postby sourmìlk » Wed Apr 06, 2011 8:09 pm UTC

NuclearTide wrote:I'm in my second semester of college and I'm currently taking an intro Java course (I never programmed before college, and I started with C last semester). So I know the basics of programming, but something that's really been bothering me is that I don't know how this applies in the real world. What do you actually do with Java? I have a vague idea of programmers writing programs that do cool stuff (like games), but how do you get to the point where you can use your knowledge to write programs that matter? And to be honest, I don't really know much of the inner workings of a computer. Does anybody have any recommendations for books I should study or programs I could write?


To address your second part of the question: you can learn to write programs that matter as soon or as late as you like. You can spend a lot of time on simpler command line programs learning good programming techniques and skills, or you can jump into complex graphical APIs and have fun figuring it out as you go along. I mostly chose the latter option and I'm rather enjoying it.

If you want to do some programming with more immediate and tangible results, I recommend doing a bit of web development.
Terry Pratchett wrote:The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.

NuclearTide
Posts: 14
Joined: Wed Mar 05, 2008 4:31 am UTC

Re: What can I do with coding skills?

Postby NuclearTide » Thu Apr 07, 2011 6:01 am UTC

Hey thanks for the replies everyone! It seems that I have a lot to learn.

One question though: what's Project Euler for? I solved the four easiest problems using Java. Do you guys view it as an effective way for learning a programming language?

User avatar
sourmìlk
If I can't complain, can I at least express my fear?
Posts: 6393
Joined: Mon Dec 22, 2008 10:53 pm UTC
Location: permanently in the wrong
Contact:

Re: What can I do with coding skills?

Postby sourmìlk » Thu Apr 07, 2011 9:23 am UTC

NuclearTide wrote:Hey thanks for the replies everyone! It seems that I have a lot to learn.

One question though: what's Project Euler for? I solved the four easiest problems using Java. Do you guys view it as an effective way for learning a programming language?


I haven't looked at it too much, but it teaches you how to think about control flow and such. Although you probably want to use something simpler like python: there's no need to overcomplicate things. Also, python handles large numbers really well.
Terry Pratchett wrote:The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.

User avatar
Berengal
Superabacus Mystic of the First Rank
Posts: 2707
Joined: Thu May 24, 2007 5:51 am UTC
Location: Bergen, Norway
Contact:

Re: What can I do with coding skills?

Postby Berengal » Thu Apr 07, 2011 5:32 pm UTC

NuclearTide wrote:One question though: what's Project Euler for?

It's for exercising your algorithmic, mathematical and creative problem solving muscles. The problems are complicated enough that you need to be able to reason about them mathematically to reduce the problem space to something that fits inside our universe, and even then still large enough that you need a computer to solve them, which means you need to be able to translate your (often not trivial) mathematical reasoning into a program.
NuclearTide wrote:I solved the four easiest problems using Java. Do you guys view it as an effective way for learning a programming language?

When I learn a new language I solve some PE problems with it. It helps in mapping out certain parts of the language's model, as well as getting the syntax into my fingers. If you only solve PE problems however, you'll be sorely lacking in other areas. I'd say it's a good way to get into programming as such, forcing you to invent new algorithms and programming techniques. All of them will probably have been invented before in some form or other, but the important part is learning how to come up with them yourself. Reinventing the wheel is only bad if there's nothing to learn from doing so (or the wheel in question is important enough to require a quality one).

Essentially, to learn programming, do at least one of [read tutorials and blogs, join a programming community, take a class] and program a lot. There are worse ways to learn programming than just searching for "programming" and start from there. Question everything and spend a few minutes on wikipedia whenever a new topic comes up.
It is practically impossible to teach good programming to students who are motivated by money: As potential programmers they are mentally mutilated beyond hope of regeneration.

User avatar
Yakk
Poster with most posts but no title.
Posts: 11128
Joined: Sat Jan 27, 2007 7:27 pm UTC
Location: E pur si muove

Re: What can I do with coding skills?

Postby Yakk » Thu Apr 07, 2011 6:15 pm UTC

It is probably a better introduction to Computer Science than to Programming.

Computer Science is to Programming as Materials Physics is to Structural Engineering.
One of the painful things about our time is that those who feel certainty are stupid, and those with any imagination and understanding are filled with doubt and indecision - BR

Last edited by JHVH on Fri Oct 23, 4004 BCE 6:17 pm, edited 6 times in total.

NuclearTide
Posts: 14
Joined: Wed Mar 05, 2008 4:31 am UTC

Re: What can I do with coding skills?

Postby NuclearTide » Fri Apr 08, 2011 1:38 am UTC

Thanks for the replies again! Everyone here seems so knowledgeable, I think I'll hang around these forums from now on.

Parsifal
Posts: 113
Joined: Thu Feb 28, 2008 1:35 am UTC

Re: What can I do with coding skills?

Postby Parsifal » Sun Apr 24, 2011 2:27 pm UTC

I wrote my first professional Java code in late 2003 and have been coding in Java almost daily since then. The barrier to entry is really a lot lower than you might think. I could probably teach anyone with a decent math, science or technical background to write web or client-side applications in Java in less than a month. Of course, writing *good* code takes a lot of practice since there are so many factors involved: web standards, design patterns, source control, domain-specific languages, client-side eye candy and so on.

The hardest part of making your skills translate into a paycheck is the same as any field - getting your first 'real' job. Fortunately, you can program in a free/open source version of nearly any language on virtually any computer. I suggest reading an introductory book on programming (outside of class), working programming problems until the syntax itself becomes second nature, and volunteering to collaborate on a software project at your university. Math, biology, chemistry and of course computer science professors often hire out various projects to willing novice coders.

User avatar
Ptolom
Posts: 1559
Joined: Mon Mar 24, 2008 1:55 pm UTC
Location: The entropy pool
Contact:

Re: What can I do with coding skills?

Postby Ptolom » Sun Apr 24, 2011 7:29 pm UTC

I too have this issue. I know C, C++ to an extent, python and a smattering of haskell. I've written a huge number of small programs to demonstrate something mathematical or create some graphical effect, along with simple games.
Starting by writing a game probably isn't the best idea for someone who just wants to further their coding, but I'm also interested in the art, music and writing involved, so a game is what I'm doing.
Set in a future world where the whole planet is covered in ocean, you're a pirate who has to work his way up to greatness by capturing vessels and swashbuckling. I think you'd call it an action rpg, if you needed a genre. top down 2d graphics. I haven't the time or aptitude to make decent 3d art.
So far I have basic graphics, running around, collision detection and chopping stuff up with a cutlass mechanics, plus a few character sprites. I took a couple of months off from it for exams, and I'm just coming back to work on it. The code is messier than I realised, but I have high hopes of actually achieving something with it.

NuclearTide
Posts: 14
Joined: Wed Mar 05, 2008 4:31 am UTC

Re: What can I do with coding skills?

Postby NuclearTide » Mon May 02, 2011 3:04 am UTC

I've been going through a bunch of random Wikipedia articles lately, and I think I'm beginning to understand what CS/programming is all about. To my knowledge, programming is a means for creating software that does something important (the act of which requires a level of skill to do efficiently), and computer science explores the vast variety of cool "things" that can be implemented or programmed.

My new question is how does someone get from the level of a Java noob to the point when (s)he can code something like Facebook/Twitter/foursquare? What do you need to know/learn?

User avatar
TheChewanater
Posts: 1279
Joined: Sat Aug 08, 2009 5:24 am UTC
Location: lol why am I still wearing a Santa suit?

Re: What can I do with coding skills?

Postby TheChewanater » Mon May 02, 2011 4:18 am UTC

NuclearTide wrote:My new question is how does someone get from the level of a Java noob to the point when (s)he can code something like Facebook/Twitter/foursquare?

After spending years learning about web design, databases, security, etc...

Don't start out programming with the goal of replicating some other piece of software. Also, keep in mind that those websites are run by very rich corporations with hundreds of programers, most of which haven't been "Java noobs" in a long time. You're setting yourself up to fail, which is especially bad if you don't learn anything from it. Instead, try smaller challenges that you can actually use to build up your knowledge of programming concepts.
ImageImage
http://internetometer.com/give/4279
No one can agree how to count how many types of people there are. You could ask two people and get 10 different answers.

User avatar
Steax
SecondTalon's Goon Squad
Posts: 3038
Joined: Sat Jan 12, 2008 12:18 pm UTC

Re: What can I do with coding skills?

Postby Steax » Mon May 02, 2011 3:01 pm UTC

You can be the world's most amazing programmer, but actually making quality products takes so much more. You'll need design and marketing skills at least. There are subjects like User Experience and smaller design elements like User Interface Design that contribute a lot towards making really good products. This is a big reason why programmers can't just take a complete product and try to recreate it with pure code. There's a lot that goes to making something successful, and programming is just one path there.

Instead, learn to do meaningful stuff with your code first. If you'd like, you can also learn those, but it's a long road that you have to learn with hard work, tears and failures.

I, personally, am what I simply call a "website maker". It doesn't sound as cool as "designer" or "developer", but that's what I do. And from my experience, it's sort of like the ultimate crash course. If you're interested in making web apps and the sort, this is a good way to start. You'll learn a piece of everything, and you'll see from many points of view.

And, as said previously, be careful not to confine yourself to Java or any single language. Learn, learn learn learn.
In Minecraft, I use the username Rirez.

sakekasi
Posts: 25
Joined: Thu Aug 05, 2010 11:26 pm UTC

Re: What can I do with coding skills?

Postby sakekasi » Tue May 03, 2011 2:17 am UTC

after spending a long enough time programming, you can pick up a language in about 1 hour. The rest of the time spent coding in the language makes you more alert to the nuances of the language, so be sure to learn as many programming languages as you can. Also, because project euler expects you to have your code run in less than a minute, you can use it to get a feel for how to make your programs run faster.
Image
Image
GraphiteGirl wrote:
Kewangji wrote:Like, assume I drop my ice cream. This is extra tragic if I'm at a funeral.
There will be an added layer of tragedy if no one sigs this.

Parsifal
Posts: 113
Joined: Thu Feb 28, 2008 1:35 am UTC

Re: What can I do with coding skills?

Postby Parsifal » Tue May 03, 2011 10:53 am UTC

My new question is how does someone get from the level of a Java noob to the point when (s)he can code something like Facebook/Twitter/foursquare? What do you need to know/learn?


An important point to remember is that most large applications like Facebook are coded by teams which consists of specialists in several areas. Most of them can do several things well, but few if any are experts on enough topics to write the entire application themselves. Compounding the issue, most of those people have years of experience and are architects/team leads who actually write little code at all. My advice would be to pick one area and write a good solid demo program, then branch out to related topics.

For example, I learned basic Java coding while working on a desktop application. Then, I learned a desktop UIs in the same language, then web UIs, then more comprehensive back-end web coding. Next, I learned to write database queries, then more general database topics, then non-Java related scripting and web page design. At this point, I've done just about every kind of Java web app coding there is, but I didn't start by thinking "I'll just learn everything".

User avatar
Steax
SecondTalon's Goon Squad
Posts: 3038
Joined: Sat Jan 12, 2008 12:18 pm UTC

Re: What can I do with coding skills?

Postby Steax » Tue May 03, 2011 2:18 pm UTC

I'm a fan of the learn-as-you-go method, but only because I'm the kind of person who needs proper motivation before getting anything done (knowing I'm learning X to be able to do Y is much, much better than just "uh, lets learn Y").

Creating software is kinda like summer school you get to pick when you were little. You could take anything from "Bees" to "Treehouse Construction", it really depends on what you want, and what you're interested in.
In Minecraft, I use the username Rirez.

User avatar
OOPMan
Posts: 314
Joined: Mon Oct 15, 2007 10:20 am UTC
Location: Cape Town, South Africa

Re: What can I do with coding skills?

Postby OOPMan » Tue May 31, 2011 4:35 am UTC

Varsity is mostly about theory...

Real-world development is something else entirely...

If you manage to complete a CS degree then employers will assume that you have the mental muscle to pick up the real-world
layer as you work in your first job.

This is also true even if you don't have a complete CS degree like me...
Image

Image


Return to “Coding”

Who is online

Users browsing this forum: No registered users and 7 guests