How would you become an expert coder if you were a beginner?

  • (2 Pages)
  • +
  • 1
  • 2

15 Replies - 3800 Views - Last Post: 14 February 2014 - 10:30 AM

#1 mauricez  Icon User is offline

  • New D.I.C Head

Reputation: 1
  • View blog
  • Posts: 10
  • Joined: 10-February 14

How would you become an expert coder if you were a beginner?

Posted 10 February 2014 - 12:16 PM

I have no idea if this is the right section, but anyways.

If you were a beginner and wanted to become an expert-lever coder in the fastest possible way, how would you do it?

I'm not looking for a shortcut method. I know it takes hard work, but I'm looking for the most efficient way of learning code to get to an expert-level.

Thanks!
Is This A Good Question/Topic? 0
  • +

Replies To: How would you become an expert coder if you were a beginner?

#2 no2pencil  Icon User is offline

  • Professor Snuggly Pants
  • member icon

Reputation: 6552
  • View blog
  • Posts: 30,682
  • Joined: 10-May 07

Re: How would you become an expert coder if you were a beginner?

Posted 10 February 2014 - 12:20 PM

View Postmauricez, on 10 February 2014 - 02:16 PM, said:

If you were a beginner and wanted to become an expert-lever coder in the fastest possible way, how would you do it?

Fast & quality hardly co-exist. Expert = Experience.

Just to add, I'm always a bit confused by these posts, because there is no way someone can 'explain' experience to you. You know what you need to do ;)
Was This Post Helpful? 0
  • +
  • -

#3 mauricez  Icon User is offline

  • New D.I.C Head

Reputation: 1
  • View blog
  • Posts: 10
  • Joined: 10-February 14

Re: How would you become an expert coder if you were a beginner?

Posted 10 February 2014 - 12:25 PM

View Postno2pencil, on 10 February 2014 - 12:20 PM, said:

View Postmauricez, on 10 February 2014 - 02:16 PM, said:

If you were a beginner and wanted to become an expert-lever coder in the fastest possible way, how would you do it?

Fast & quality hardly co-exist. Expert = Experience.

Just to add, I'm always a bit confused by these posts, because there is no way someone can 'explain' experience to you. You know what you need to do ;)/>


I wasn't asking someone to explain experience, more like where would you start and what path would you take.

Thanks for the answer though!
Was This Post Helpful? 0
  • +
  • -

#4 modi123_1  Icon User is offline

  • Suitor #2
  • member icon



Reputation: 13493
  • View blog
  • Posts: 53,901
  • Joined: 12-June 08

Re: How would you become an expert coder if you were a beginner?

Posted 10 February 2014 - 12:28 PM

As it has been answered a hundred times before. Get a book and/or take a class. A structured step through that thoroughly covers all the bases is substantially better than flailing your arms around while bumping into disjointed topics/threads/video tutorials.

Posted Image
Was This Post Helpful? 0
  • +
  • -

#5 no2pencil  Icon User is offline

  • Professor Snuggly Pants
  • member icon

Reputation: 6552
  • View blog
  • Posts: 30,682
  • Joined: 10-May 07

Re: How would you become an expert coder if you were a beginner?

Posted 10 February 2014 - 12:29 PM

View Postmauricez, on 10 February 2014 - 02:25 PM, said:

more like where would you start and what path would you take.

See, 'where to start' is a different question than 'how to be an expert'.

I would suggest checking the sub forum for the specific language. There are pinned topics with faqs & project ideas. I would suggest checking there to get started.
Was This Post Helpful? 0
  • +
  • -

#6 mauricez  Icon User is offline

  • New D.I.C Head

Reputation: 1
  • View blog
  • Posts: 10
  • Joined: 10-February 14

Re: How would you become an expert coder if you were a beginner?

Posted 10 February 2014 - 12:34 PM

Thanks for the answers guys
Was This Post Helpful? 0
  • +
  • -

#7 Logik22  Icon User is offline

  • D.I.C Head

Reputation: 10
  • View blog
  • Posts: 171
  • Joined: 12-December 11

Re: How would you become an expert coder if you were a beginner?

Posted 10 February 2014 - 01:15 PM

This really depends on you. But since you asked how I would do it...

A lot of people say just read a bunch of books on it. That's not particularly helpful for me. The way that works best for me is to dive in and do it. For instance, if I want to learn about web design I might make a basic web page about something I like. It doesn't have to be the next facebook so I don't care up the topic is, I just want something that will keep my interest going. It's also beneficial because I will know a lot about the topic so I can focus on transferring my ideas to an HTML page instead of first trying to get an understanding of the topic.

If I was trying to learn Java I would make a program that interests me. For example, I'm interested in cars as well as tracking fuel efficiency. My car gets terrible gas mileage so If I can squeeze an extra 2mpg out of it I'm curious to see why. So I made an app that let me track my fuel usage. On top of that it let me put in what type of driving (70% city, etc), gas station, etc. Then I had it write that to a database so I could save and review it. This taught me the basics of Java, UI (though very basic), SQL integration, etc.

Point I'm trying to make is figure out what you want to learn (Java, HTML/CSS/etc, C++), find a project, and go for it. When you fail, google a solution. You usually won't find the solution in the first result but you'll learn a hell of a lot sifting through it. Don't feel bad about starting basic. If you want to make a Java program with a label that says "Name:", a textbox, and a button that says "Submit". Then when you hit submit it says "Hey <name>!". Do it! It might seem really easy but you have to start somewhere.
Was This Post Helpful? 2
  • +
  • -

#8 jon.kiparsky  Icon User is offline

  • Chinga la migra
  • member icon


Reputation: 10690
  • View blog
  • Posts: 18,308
  • Joined: 19-March 11

Re: How would you become an expert coder if you were a beginner?

Posted 10 February 2014 - 01:30 PM

*
POPULAR

Pretty simple. The main thing is simply this:

Write lots and lots of code. This is not sufficient, but it is necessary. Among other things, it will motivate all of what follows, and it will direct you towards particular topics that you need to work on. Programming is the art of solving problems. To do it well, you have to practice solving problems.

These two are pretty critical:
Learn one language well. (to the point where you can implement a non-trivial program on your own, and be an active contributor to a major project)
Once you know one language well, learn a second language well. The second language should be one that is somewhat distinct from the first one.

Do some or all of the following. Which ones get priority will become obvious as you go along:

Study algorithms - learn and implement the standard "basic set" of data structures and algorithms as outlined for example in Sedgewick's textbook and the fundamentals of algorithmic complexity (also covered in Sedgewick)
Learn math. CS relies on many branches of math, depending on what areas you're interested in. These include (in no particular order) calculus, graph theory, plane geometry, number theory, linear algebra, and set theory - there are others, but that's a start. The more you learn in those areas, the more you'll be able to understand about CS.
Study programming paradigms, big ideas, and so forth. When you find a concept that people are arguing about, it's likely that there's something there worth understanding. Seek it out and try to understand why it matters to people. Then you can decide whether it's one you need to know about in detail.
Study software engineering. This is the art of bringing a project to completion. It's not about programming, it's about project management, but if the project is not managed well, it's not likely to end well. See Ed Yourdon's book "Death March" to understand a basic mode of project failure. Frederick Brooks' book "The Mythical Man-Month" is also a seminal text in this area.
Talk about programming. DIC is a great place to do this. While you have to do it to understand it, you can improve your understanding by explaining your thinking to others, and by having your explanations questioned or corrected by others.
There are plenty of other things you could do, but as you do these things, others will add themselves to your list. This implies the last, and possibly most important item on the list:

Prioritize concrete progress on real projects. There's an endless supply of theory and ideas to work with. If you have a chance to work on something real, don't let your backlog of things to study interfere with that. You will learn more by making something imperfect and seeing it through to completion than you will by waiting until you know how to make it perfectly before you start.
Was This Post Helpful? 7
  • +
  • -

#9 mauricez  Icon User is offline

  • New D.I.C Head

Reputation: 1
  • View blog
  • Posts: 10
  • Joined: 10-February 14

Re: How would you become an expert coder if you were a beginner?

Posted 10 February 2014 - 06:41 PM

Thanks a lot man for the really informative answer. When you say "write lots of code", do you suggest just random stuff on my own, projects, or anything else?

Once again, thanks so much for a concrete answer.

This post has been edited by macosxnerd101: 11 February 2014 - 08:06 AM
Reason for edit:: Removed large quote

Was This Post Helpful? 0
  • +
  • -

#10 jon.kiparsky  Icon User is offline

  • Chinga la migra
  • member icon


Reputation: 10690
  • View blog
  • Posts: 18,308
  • Joined: 19-March 11

Re: How would you become an expert coder if you were a beginner?

Posted 10 February 2014 - 06:59 PM

View Postmauricez, on 10 February 2014 - 08:41 PM, said:

Thanks a lot man for the really informative answer. When you say "write lots of code", do you suggest just random stuff on my own, projects, or anything else?

Once again, thanks so much for a concrete answer.


I would suggest more purposeful than random, but what purposes you serve are your choice. Some people like to try to reinvent wheels - write a text editor, write a tetris game, whatever. Other people like to solve math problems (projecteuler.net) or learn about bioinformatics (rosalind.info). You could just take a textbook on programming and work all of the coding problems in the book. You'll find that over time, a few things will happen. One is, you'll start hitting roadblocks. You'll learn a lot by getting around those. Another is, you'll get better at knowing what to write without thinking about it. Whatever language you're working in you'd like to be able to think at a high level, and not have to think about how to express this idea correctly. This is a skill that you get better at over time. Another thing that will happen as you write more code is, you'll get more ideas. So if you start with some set of idea pumps, pretty soon you'll have more ideas than you know what to do with. And finally, you'll find that as you write more code, writing better code becomes

And to some extent, the point of this is just to get all of the bad writing out of your system. Make lots of mistakes now, and learn from them, so you don't have to make them later.
Was This Post Helpful? 0
  • +
  • -

#11 mauricez  Icon User is offline

  • New D.I.C Head

Reputation: 1
  • View blog
  • Posts: 10
  • Joined: 10-February 14

Re: How would you become an expert coder if you were a beginner?

Posted 10 February 2014 - 08:23 PM

View PostLogik22, on 10 February 2014 - 01:15 PM, said:

<Snip>


Thanks for the response! I think that's what I'll do and just dive in.

This post has been edited by macosxnerd101: 11 February 2014 - 08:06 AM
Reason for edit:: Please avoid quoting large posts

Was This Post Helpful? 1
  • +
  • -

#12 jon.kiparsky  Icon User is offline

  • Chinga la migra
  • member icon


Reputation: 10690
  • View blog
  • Posts: 18,308
  • Joined: 19-March 11

Re: How would you become an expert coder if you were a beginner?

Posted 10 February 2014 - 08:25 PM

View Postmauricez, on 10 February 2014 - 10:23 PM, said:

Thanks for the response! I think that's what I'll do and just dive in.



Go for it. The water's fine, and we'll throw you a rope if you get in over your head.

This post has been edited by jon.kiparsky: 10 February 2014 - 08:26 PM

Was This Post Helpful? 1
  • +
  • -

#13 mauricez  Icon User is offline

  • New D.I.C Head

Reputation: 1
  • View blog
  • Posts: 10
  • Joined: 10-February 14

Re: How would you become an expert coder if you were a beginner?

Posted 10 February 2014 - 08:25 PM

That sounds good. I'll follow your advice to the letter and we'll see what happens.

Thanks a lot

This post has been edited by macosxnerd101: 11 February 2014 - 08:07 AM
Reason for edit:: Removed large quote

Was This Post Helpful? 0
  • +
  • -

#14 snoopy11  Icon User is offline

  • Engineering ● Software
  • member icon

Reputation: 1378
  • View blog
  • Posts: 4,320
  • Joined: 20-March 10

Re: How would you become an expert coder if you were a beginner?

Posted 12 February 2014 - 03:14 PM

Jon gave you a great answer in post #8

I would just like to add code what interests you, the fastest way to learn is when you are doing something really interesting, well interesting to you, maybe not to your wife or kids who are trying to get your attention.

but I digress, just write programs that you would like to learn about, whether that be games or databases or image or sound processing or whatever. But be honest with yourself about your abilities and try to be hard on yourself expect more not less.

Snoopy.

This post has been edited by snoopy11: 12 February 2014 - 03:15 PM

Was This Post Helpful? 2
  • +
  • -

#15 mauricez  Icon User is offline

  • New D.I.C Head

Reputation: 1
  • View blog
  • Posts: 10
  • Joined: 10-February 14

Re: How would you become an expert coder if you were a beginner?

Posted 12 February 2014 - 03:54 PM

Hey Snoopy,

I completely agree with what you're saying.

I have a few projects in mind that would definitely satisfy my own needs. Once I get past the basics of coding, I'll start to work on those one at a time.

Thanks for your comment.
Was This Post Helpful? 0
  • +
  • -

  • (2 Pages)
  • +
  • 1
  • 2