1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

Development Good ways to learn to code

Discussion in 'Software' started by [PUNK] crompers, 7 Aug 2013.

  1. [PUNK] crompers

    [PUNK] crompers Dremedial

    Joined:
    20 May 2008
    Posts:
    2,909
    Likes Received:
    50
    I'm looking to learn a bit of programming and wondering where is a good place to start? I know a bit of SQL (queries, joins and fairly simple stuff) and dabbled with VB many years ago.

    Java would be helpful for my job (I'm a salesforce admin) but I'm really looking for a good (fun if possible) way to learn the basics pretty much from scratch so wondered if its worth trying some python first?
     
  2. RinSewand

    RinSewand What's a Dremel?

    Joined:
    11 Sep 2006
    Posts:
    1,845
    Likes Received:
    80
    CodeAcademy are pretty fun for the basics. Enough to give you an intro into a few things anyway, especially Java and web based languages :)
     
    bsp likes this.
  3. Pliqu3011

    Pliqu3011 all flowers in time bend towards the sun

    Joined:
    8 Aug 2009
    Posts:
    2,736
    Likes Received:
    257
    I don't know Java (yet), but in my experience learning python is a fun and relatively frustration-less way to learn programming.
    This is a pretty good free and open tutorial, not only to Python, but also to programming concepts in general.

    Maybe someone else (who knows more about programming/Java) will tell you that it's better to just start with Java if that's what you want to learn, but in the end I think language is just the tool you're using. Most of the programming happens in your head and that's what you need to train, so starting out with a less complicated language is one hurdle less IMO.
     
  4. Dae314

    Dae314 What's a Dremel?

    Joined:
    3 Sep 2010
    Posts:
    988
    Likes Received:
    61
    Interpreted scripting languages (e.g. python, ruby) tend to be the easiest to read and easy to do quick projects on. Since stuff like Java and C++ are compiled languages, most people tend to use them less for everyday small projects. However, compiled C++ binaries will work on computers that don't have a C++ compiler installed whereas an interpreted script requires the interpreter to run.

    As long as you're learning a somewhat object oriented language, that will unlock the door for you to learn many more languages since a lot of them now are based somewhat on object oriented principals.

    My advice would be Python to begin with then move to Java once you're more used to the concepts. You can use the tons of online resources to learn. If you find yourself getting lost on certain concepts look up the same concept explained by a different author. Sometimes a different perspective or just plain hearing many different versions of the same thing helps you understand it.
     
  5. [PUNK] crompers

    [PUNK] crompers Dremedial

    Joined:
    20 May 2008
    Posts:
    2,909
    Likes Received:
    50
    OK thanks some good pointers there. A friend had pointed me towards robocode but I think that might be one for later down the line.

    Salesforce is very object oriented and I'll be administering our SharePoint soon too so python to Java may be a good way to for me.
     
  6. Gunnzie

    Gunnzie What's a Dremel?

    Joined:
    17 Jul 2013
    Posts:
    91
    Likes Received:
    1
  7. faugusztin

    faugusztin I *am* the guy with two left hands

    Joined:
    11 Aug 2008
    Posts:
    6,953
    Likes Received:
    270
    To be honest, unless you are going to try to run everything in command line, then Java is just as effective for quick programming as python or other scripting languages. The reason for that is the incremental compilation (compile on save) in pretty much any of the Java IDE - Eclipse, Netbeans, even IntelliJ (they compile changes when needed - run, deploy; can be configured using 3rd party plugin to do compile on save too).

    I really don't see any reason for learning Python if you are going to learn Java anyway, Python is different enough for transition not to be easy - nesting defined by indentation, not curly braces and the other language differences, not even talking about the completely different API.
     
  8. [PUNK] crompers

    [PUNK] crompers Dremedial

    Joined:
    20 May 2008
    Posts:
    2,909
    Likes Received:
    50
    Been talking to a couple of guys at work who suggested I maybe just jump straight into java. Anyone have suggestions for where I can find an SCJP manual for beginners?
     
  9. fdbh96

    fdbh96 What's a Dremel?

    Joined:
    29 May 2011
    Posts:
    1,894
    Likes Received:
    33
    To be honest I wouldn't bother learning anything other than the basics. After that, start doing projects that you actually want to do and then you will learn the more advanced stuff as you need to rather than by cramming everything in at once.
     
  10. faugusztin

    faugusztin I *am* the guy with two left hands

    Joined:
    11 Aug 2008
    Posts:
    6,953
    Likes Received:
    270
    Forget SCJP. Thinking in Java 3rd edition would do for start. Sure, it won't cover some newer features from J2SE 5.0 and newer (generics are the most important from those), but for free it will do for start. Then once you got the really basic basics, you can think of learning the newer, really usefull features like the generics.
     
  11. notmeagain

    notmeagain Minimodder

    Joined:
    29 Jan 2009
    Posts:
    561
    Likes Received:
    15
    I find the best way to code is to think of how you would logically tackle a problem - try it out in pseudo code first to understand the logic behind it, then try to apply that logic into a language.

    Do it across several languages taking a bit of time to get comfortable with each and then choose one you're happy with.

    Focus on that language for a while practising with different problems/solutions.

    My experience took me from coding VBA on MSAccess, to being the lead php developer in my company in 5 years.

    I've taken a backseat from coding and focus more on project management and strategic focus these days, but each step i took was to resolve a problem in as fewest logical leaps as possible.

    It's always good to have a goal and stick to it.
     
  12. [PUNK] crompers

    [PUNK] crompers Dremedial

    Joined:
    20 May 2008
    Posts:
    2,909
    Likes Received:
    50
    Helpful stuff thank you.

    I'm starting to look at code in work and can see how some things fit together. Knowing the objects and how they relate to each other helps. Need to just get going and start now, can anyone suggest a good realistic starting project?
     
  13. fdbh96

    fdbh96 What's a Dremel?

    Joined:
    29 May 2011
    Posts:
    1,894
    Likes Received:
    33
    Dont know if this would be any help but this is what my A-Level teacher wrote for our class. Its for VB.NET but the projects that go along with it will probably be pretty compatible with java.

    https://www.dropbox.com/s/cg3euhliebkyzsb/vb2008Guide2.docx

    A calculator is usually a pretty good project when you've got going.
     
  14. theshadow2001

    theshadow2001 [DELETE] means [DELETE]

    Joined:
    3 May 2012
    Posts:
    5,284
    Likes Received:
    183
    I agree with this one. In order to become competent at programming you need to do it as a means to an end. Just reading the books and doing the exercises will only get you so far.

    Calculator was going to be my suggestion too. :thumb:
     
  15. Dae314

    Dae314 What's a Dremel?

    Joined:
    3 Sep 2010
    Posts:
    988
    Likes Received:
    61
    Calculators are a pretty good starting point. Depending on how you want to do it, you could do string processing (to try to parse out simple functions from user input) or you could get something together to make a simple GUI and do a polish notation type of calculator and play with a stack.

    Once you have a calculator with basic arithmetic, build in a history function and a way to recall entries.

    After doing something like that, you should have all the basics laid out, and you should continue pursuing things you need to know or things that you find interesting. I do suggest you continue on after learning the basics to object oriented concepts like classes, inheritance, and scope though since that'll help you with some other languages. Another good paradigm to learn is functional programming. After that, if you want to continue, you can start reading up on data structures and design patterns.
     
  16. GuilleAcoustic

    GuilleAcoustic Ook ? Ook !

    Joined:
    26 Nov 2010
    Posts:
    3,277
    Likes Received:
    72
    As suggested, I would start with pseudo code. Learning the basic behind programming is the best way to get solid knowledge.

    Pseudo code makes abstraction of the langage, could it be procedural or object oriented. Writing the code, then, is just like translating a text from a english to french for example.

    Learn to write the logic on paper and then try to translate it to source code.

    I'm a professional programmer for 13 years now, and trust me, pseudo is my friend life saver tool :)
     
  17. BentAnat

    BentAnat Software Dev

    Joined:
    26 Jun 2008
    Posts:
    7,230
    Likes Received:
    219
    I would start with www.udacity.com

    Python is a good place to start, and is easy as pie to pick up.
    The udacity folks are highly skilled and teach well.
    Also - immediately diving into something practical is cool.
     
  18. fdbh96

    fdbh96 What's a Dremel?

    Joined:
    29 May 2011
    Posts:
    1,894
    Likes Received:
    33
    If you find pseudocode hard to grasp at the start, which I did, I would recommend trying a structured english approach. Sometimes the problem can get a but disorganised in your head and writing it out in normal language really helps me before I try the pseudocode.

    Also, if a program isn't working for whatever reason, dry runs are a great way to find the problem.
     
  19. [PUNK] crompers

    [PUNK] crompers Dremedial

    Joined:
    20 May 2008
    Posts:
    2,909
    Likes Received:
    50
    I've been looking at pseudocode and can see how it will be useful cheers for that.

    Working through the first chapter of the oracle Java beginners book and I'm doing OK. Using intellj which is very helpful (definitely couldn't write it in the command line!). Just wrote my first programme without looking at the book, trying to get a for loop printing incrementally.
     
  20. theshadow2001

    theshadow2001 [DELETE] means [DELETE]

    Joined:
    3 May 2012
    Posts:
    5,284
    Likes Received:
    183
    I've been looking at this guys videos for C++

    www.thenewboston.org.

    He has an extensive set of java videos as well.

    I find he skims across various concepts without too much depth (the java videos might be different though). It might be seen as a bad thing but I actually find it very good as he gets across core concepts fast. The depth of understanding will come as you become more experienced yourself. Also when you see the topics he has covered in other educational sources such as books which give you a further understanding you will already have a foundation in it.
     

Share This Page