Can anybody learn how to code?


 
Thread Tools Search this Thread
The Lounge What is on Your Mind? Can anybody learn how to code?
# 1  
Old 06-04-2014
Can anybody learn how to code?

Hey Everyone,

Apologies on the vague title, but it is at the core of my question - let me first elaborate a little bit here.

Just to give a brief background on myself - I have been working in the IT industry for around 4 years now. I first started working straight from college (where I did average at best as I really did not much enthusiasm at all at the time) at the age of 18. I began working on a mainframe system, picking up the basic bits and pieces and eventually worked my way over to the UNIX side. Prior to my experience at work, I had always been a bit of a geek (mostly computer games) - but in terms of technical stuff, all I had experience in was dabbling with a bit of HTML for fun.

In the past few years I have become really interested with coding, such a shell scripting, awk etc. (currently learning perl). I am seriously considering a career path down the coding route in the future. I wouldn't consider myself highly intelligent, but I do okay and believe I manage to pick things up quite well. What I have found since beginning my 'coding journey' is that there seems to be quite a distinct leap between your average shell script, some regexp and if statements here and there, which seem to be quite linear concepts, and your much more abstract codes and programs (for loops within for loops, multi-dimensional arrays, algorithms etc.).

My main question is, does one have to possess an inherently high intelligence level to move onto the next level with coding and grasp these types of 'abstract coding' concepts? Or can they be learned with enough determination? I definitely have the eagerness to learn, but I don't want feel like I'm going down a route where I may hit a wall (i.e. Grasp certain concepts) and not be able to progress.

Sorry if my question is poorly worded, I hope some people might be able to relate to this and offer some advice Smilie.

Thanks all.
pilnet101
# 2  
Old 06-04-2014
As I see it, what programming takes is creativity, thoroughness, and the right kind of obsessive laziness... My programming journey truly began in high-school, when my biology teacher handed me an inane assignment requiring two buckets of dry beans and a blindfold. I was supposed to count out several hundred beans of each kind individually, mix them back together, randomly add and remove them in various ways to simulate "natural selection" then total up the results.

This would have required
1) actually having several hundred dry beans of two colors
2) being willing to paw at them for hours like a 2-year-old in a sandbox

A qbasic program cobbled together in 15 minutes solved it instead. That's the first time I wrote anything that actually saved me time and effort.

That's what it's really for in the end, solving problems. If you find yourself thinking "this is so boring/stupid/repetitive, why doesn't the computer do this?" maybe it should be. It's not a career choice as much as a means to an end. You may find a use for it in lots of IT work but generally, nobody's going to hire you to program awk, shell, C, or whatever -- it's a tool for whatever problem they need to solve.

Most of these computing concepts you're worried about aren't too abstract or complicated. You already know what a loop and multi-dimensional array are, I'm sure. Some things are harder to build than they should be, of course.

Last edited by Corona688; 06-04-2014 at 06:46 PM..
This User Gave Thanks to Corona688 For This Post:
# 3  
Old 06-05-2014
IT has put lots of clerks out of work by taking the boring repetitive processes they had are replacing them with machines that do far more far quicker. All the important work they would have done (for example calculating an pension liability against investments held and their daily values) could be dismantled to a series of mind-numbing processes. These actions are then logically collected into either sequences, loops, conditions etc. If you can dismantle processes far enough and then write the lowest lever of operation in a language that the computer understands, you are a programmer.

Consider making a cup of tea. What steps would you have and what could they be further broken down to?

High level process to make a cup of tea:-
  • Add tea to pot
  • Add hot water to pot
  • Allow to brew
  • Pour from pot to cup
  • Add milk

Okay? Let's move on another layer.

Two level process to make a cup of tea:-
  • Add tea to pot
    • Remove lid of pot
    • Use spoon to put one measure into pot
    • Use spoon to put 2nd measure into pot
  • Add hot water to pot
    • Fill kettle
    • Boil kettle
    • Pour hot water from the kettle spout to the pot.
  • Allow to brew
    • Lift lid
    • Wait 2 minutes
    • Mix with spoon
    • Wait 30 seconds
    • Replace lid
  • Pour from pot to cup
    • Lift pot
    • Aim at cup
    • Tip over allowing liquid to transfer
    • Stop before overflowing less enough to allow for milk
  • Add milk
    • Get bottle from refrigerator
    • Open bottle
    • Aim at cup
    • Tip over allowing liquid to transfer
    • Stop before overflowing
Right, not let's go further, and again, and ....... no perhaps let's not, but you get the picture.

At some point, you might want to cater for 50 people, i.e. 50 cups and you have a bigger pot that will make 20 cups so you have a loop where you make the pot three times, then another loop to pour and milk one cup 20 times stopping if there are either no cups left or a total of 50 have been poured.

Of course there might be exceptions to normal processing where you have a decision for some who may not want milk or those that want sugar.


It gets more and more tedious the more you analyse it, however computers are incredibly stupid. They are incredibly good at adding up and comparing plus they do not get bored so they can be given really basic stuff to do over and over again.


If you can break human processes down small enough, you are building the logic, then you just need the tools to tell the computer what to do and you are off and running. Don't be scared. Anything that is important should be safely copied away beforehand. Computers don't break real things and at worst you recover from where you started. Ever the most complex database and application should be recoverable.



Robin
This User Gave Thanks to rbatte1 For This Post:
# 4  
Old 06-05-2014
I prefer Advanced Tea Substitute, it tastes almost, but not quite, entirely unlike tea. ;-)

Programming is about problem solving, and programming well is about solving problems without repeating a lot of logic over and over. Can you get the results that you want without hard coding magic values, can someone understand what your program is doing and why? Can someone new come in and maintain the code with out just slapping on more code? You don't need to be a genius, you just need to write thoughtful well documented code that adapts to change easily.
These 2 Users Gave Thanks to gandolf989 For This Post:
# 5  
Old 06-07-2014
Finally: be aware that "programming" isn't "programming".

There is the highly scientific number crunching: you need a solid mathematical background to even understand the algorithms involved and many times in-depth technical knowledge of the environment you program for. Applications typically needing such skills include: signal processing, simulations, graphics, realtime applications, optimization (operations research), statistics and all sorts of scientific applications.

There is the frontend-oriented business programming: you need a lot of organisatorial skills, you need to have communication skills (most customers have no idea what they want and it is your first job to clarify that with them). You will not need more math than the basic arithmetical operations, but you will have to fit into an organization, whereas the people writing the high-tech stuff can get away with being autistic (or acting that way). Knowledge about database programming is a must in this area, so picking up SQL is a good idea.

There is the hardware-oriented programming: drivers, embedded systems, all sorts of odd one-time-programmables, microcontrollers and the like. You will need a solid knowledge of Assembler (standard language in many of these cases), a well-filled algorithmic toolbox (you shouldn't need any time to think about how to compute a parity bit, for instance), but you mostly do not need that good math background you will need for scientific programming.

Finally, there is what i call "ad hoc programming": scripting, writing helpers which make daily life easier, etc.. This is mostly done in two areas: Web Development (PHP, perl, ruby, Phyton, ...) and systems administration. You will not need all too much programming skills at all, but it will in turn only be part of your work: in systems administration, for instance, you write scripts besides doing your main work, which is - administrating systems!

I hope this helps.

bakunin
This User Gave Thanks to bakunin For This Post:
# 6  
Old 06-07-2014
I agree with corona688, rbatte1 and bakunin, coding is very simple basics things you need to improve / understand are :

1. Logical / control flow
2. Basic mathematics
3. Basic logic gates and their functions
4. Your own logic to implement task in simple way
5. Ability to learn and work hard
6. Develop Analytical Skills

Don't worry about syntax, if you can develop / improve above things, you can easily start coding with the help of some manual / online resources / Forums

I personally recommend people to take advantage of forums to improve their skills, problem solving ability, don't just search short time quick fix to problem, always try to analyze solution.
These 2 Users Gave Thanks to Akshay Hegde For This Post:
# 7  
Old 06-09-2014
Thank you all very much for your insightful and enlightening responses! I especially enjoyed reading rbatte1's "cup of tea process" Smilie.
This User Gave Thanks to pilnet101 For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. What is on Your Mind?

You too can learn how to code in a day! ;oO

I am not passing a comment, just waiting to read yours... ;oD Decoded: learn to write computer code in a day - Telegraph Decoded | Technology made human | On Demand, Enterprise, Masterclass (6 Replies)
Discussion started by: wisecracker
6 Replies

2. UNIX for Dummies Questions & Answers

Want to learn

Hi I know only basics of UNIX and i want to know that how can i become a good troubleshooter in unix adminstartion or shell scripting.... i am just a newbie to Unix ..i do not have programming skills as well. Your suggestions are welecomed. (1 Reply)
Discussion started by: nattynitin
1 Replies

3. UNIX for Dummies Questions & Answers

Best way to learn UNIX

Hi, I am the ultimate noob when it comes to UNIX. Apart from a few basic thing like ls -l and mkdir (and that really is about as good as it gets) I know absolutely nothing about UNIX and I want to learn it and get better! I'm sure like with most things, just getting stuck in and trying... (3 Replies)
Discussion started by: thebdj
3 Replies

4. Red Hat

Want to learn RedHat

I Want to learn Red hat Linux at free of cost, can any one help me, I am zero in unix. (7 Replies)
Discussion started by: Mustaq
7 Replies

5. UNIX for Dummies Questions & Answers

I Want to Learn HP-UX!

What's the best free system to learn HP-UX on? The closest system, hardware requirements and installation instructions. I'm a newbie but determined. Any tips would be great. (6 Replies)
Discussion started by: networkguy
6 Replies

6. UNIX for Dummies Questions & Answers

How to learn UNIX?

Hey everybody, I am a 25 year old web programmer in Malaysia. I am not hapy with my line of work and I want to do something more. I know asp.net,asp,php and jsp.But they dont really land me in a good promising job wich I realy love. I am more interested in Oracle DBMS. now to be a DBA in Oracle... (7 Replies)
Discussion started by: shounak
7 Replies

7. Programming

Learn C or C++

Hi, Apologies if this question has been asked before. I would like to know which language is better to learn in terms of programming in unix? is C dying out and being replaced by C++ or is it a combination of the 2 or just mainly C? Thanks C19 (2 Replies)
Discussion started by: c19h28O2
2 Replies

8. UNIX for Dummies Questions & Answers

I want to learn!

Hiya, yes im new to all of this! But want to learn how to use Unix etc, iv been thinking about doin a course but desided im better off learning by my self with help from the people who really no what there doin...you guys! I can install Linux, like redhat, mandrake, susie server edition and so... (5 Replies)
Discussion started by: epic.admin
5 Replies

9. UNIX for Dummies Questions & Answers

Where to Learn About HP-UX

can someone give me the link to any site that deals on HP-UX system administration?? Please do not refer me to buy or borrow any books, i just need a free site to learn some quick info from (1 Reply)
Discussion started by: TRUEST
1 Replies
Login or Register to Ask a Question