Another 'I want to be a coder' thread

What's Hot
So like @holnrew I'd often think that I'd be a decent coder. I've got some experience with Python, LUA, and C#, but I'm a long way off being able to do it for employment. But when I do do it, I really like the sense of achievement you get when you crack a problem.

But what I really lack is focus and direction. Because I don't have a set of jobs to do, I just stare at VS and my mind draws a blank. How do other coders overcome this?

Are there any training routes I should explore? Bearing in mind I just had a child and I'm drowning in mortgage repayments - can't afford to go back to uni !
0reaction image LOL 0reaction image Wow! 0reaction image Wisdom
«1

Comments

  • holnrewholnrew Frets: 8207
    Make a sexbot
    My V key is broken
    1reaction image LOL 0reaction image Wow! 0reaction image Wisdom
  • Drew_TNBDDrew_TNBD Frets: 22445
    holnrew said:
    Make a sexbot
    Japanese have already done it!
    0reaction image LOL 0reaction image Wow! 0reaction image Wisdom
  • xSkarloeyxSkarloey Frets: 2962
    edited September 2016
    These people were exhibiting at New Scientist Live the other day.

    I didn't speak to them but your thread has reminded me that I saw them.

    Makers Academy. 'Learn to Code in 12 weeks' is the claim.

    http://www.makersacademy.com/?utm_source=newscientist&utm_medium=website%20&utm_campaign=newscientist


    edit: not cheap though!
    0reaction image LOL 0reaction image Wow! 0reaction image Wisdom
  • TimmyOTimmyO Frets: 7437
    Make a thing.

    If there's something you'd really like to have made, dig about and see what tech you think you'd be able to work out how to do it with and go that route initially. It'll be tough, so you need to feel like you'll definitely have a sense of achievement when you get there.

    If that's making a shiny iOS app, get Swift and either Apple's own great documentation, or something like an Udemy course then see where that takes you 

    Or it it's a standalone piece of software or web application then maybe C# is the starting point - but decide what you want to create and follow the path that leads you down.

    Speaking as someone who has had to find and hire devs over the years, the ones who jump out at you (qualifications be damned) are those who you can see love getting it done, solving problems, who probably spend what little free time they have on personal projects - these are valuable people who get snapped up. 
    Red ones are better. 
    0reaction image LOL 0reaction image Wow! 2reaction image Wisdom
  • It's always good to get a project that you're interested in.
    Perhaps there's something that you regularly have to do which you'd like to automate?
    Or is there something you've already automated for yourself that others would benefit from, if you could customise it for them?
    0reaction image LOL 0reaction image Wow! 0reaction image Wisdom
  • As @TimmyO said. You need to want to make something. The rest you will work out. Once you've done it a few times you'll learn to recognise what bits you need to achieve to create the "thing" but to start with you're going to have to jump in and probably drown.
    Remember that buggering up is essential to learning good methodology.
    Shot through the heart, and you’re to blame, you give love a bad name. Not to mention archery tuition.
    0reaction image LOL 0reaction image Wow! 1reaction image Wisdom
  • you could do some code katas that will give you the inspiration part ot let you focus on the skiling up part.

    If you have an actual idea and just need to know how to start then drawing out the structure at a high level on paper and then scribbling out some psuedocode can help work out what the components are going to be and whihc ones you should start with.

    If you use BDD or TDD that can also help you get started as it is often easier to write an acceptance test than some code and at each stage the amount of code you are writing is the bare minimum to make a test pass.
    ဈǝᴉʇsɐoʇǝsǝǝɥɔဪቌ
    0reaction image LOL 0reaction image Wow! 0reaction image Wisdom
  • Drew_TNBDDrew_TNBD Frets: 22445
    you could do some code katas that will give you the inspiration part ot let you focus on the skiling up part.

    If you have an actual idea and just need to know how to start then drawing out the structure at a high level on paper and then scribbling out some psuedocode can help work out what the components are going to be and whihc ones you should start with.

    If you use BDD or TDD that can also help you get started as it is often easier to write an acceptance test than some code and at each stage the amount of code you are writing is the bare minimum to make a test pass.
    What are BDD and TDD?
    0reaction image LOL 0reaction image Wow! 1reaction image Wisdom
  • joeyowenjoeyowen Frets: 4025
    To be fair, fixing a problem... or first glipsing a working program is a fecking great feeling!

    try the usual code academy/free code camp for an intro, they are pretty good for trying out.

    Syntax wise, C# and java can be very similar, so you'll know more java than you think!
    0reaction image LOL 0reaction image Wow! 0reaction image Wisdom
  • JalapenoJalapeno Frets: 6393
    joeyowen said:
    To be fair, fixing a problem... or first glipsing a working program is a fecking great feeling!

    try the usual code academy/free code camp for an intro, they are pretty good for trying out.

    Syntax wise, C# and java can be very similar, so you'll know more java than you think!
    This - they also run charity development projects for people who've finished/passed the curriculum - great for a the CV !!!!
    Imagine something sharp and witty here ......

    Feedback
    0reaction image LOL 0reaction image Wow! 0reaction image Wisdom
  • Drew_TNBD said:
    you could do some code katas that will give you the inspiration part ot let you focus on the skiling up part.

    If you have an actual idea and just need to know how to start then drawing out the structure at a high level on paper and then scribbling out some psuedocode can help work out what the components are going to be and whihc ones you should start with.

    If you use BDD or TDD that can also help you get started as it is often easier to write an acceptance test than some code and at each stage the amount of code you are writing is the bare minimum to make a test pass.
    What are BDD and TDD?
    Behaviour Driven Development / Test Driven Development

    Very similar concepts, I treat them as the same thing.
    The idea is that you write some code which describes the inputs to a piece of software, then triggers an action, then checks the output meets an expectation.

    So, without implementing the actual logic code that takes your input, responds to the action, and generates the output.

    This code you've written is essentially an automated "test". It's advised that you pick a really simple starting point and add further "tests" to gradually introduce the complexity you need.

    There are a multitude of benefits to this.
    * The first benefit, IMHO, is that you are forced to think about what your system needs in order to do a job, and you start to define names for things. As you add tests you'll begin to settle on ideas about data types, and code structure.
    * Another key benefit is that you can run that test code and it will produce a FAIL/RED status until you've written the code to satisfy it, and then it produces a SUCCESS/GREEN status. This gives you a reliable mechanism which is also fast to execute, so you get rapid feedback about the state of your code.
    *  As you add more tests, you're effectively building a suite of tests which will give you peace of mind whenever you make changes to the code.
    0reaction image LOL 0reaction image Wow! 0reaction image Wisdom
  • Great description. sadly because my product has so much legacy code I dont get to use these as much as I'd like but when I do get something that can be TDD'ed I find it really motivational as you feel like you are constantly making progress.

    By contrast when I'm working on the nasty legacy bits that are too intertwined to TDD properly without refactoring half the universe I often spend ages coding away on something with no feedback until the end only to find out when it's done that there are loads of problems I need to go back and address.
    ဈǝᴉʇsɐoʇǝsǝǝɥɔဪቌ
    0reaction image LOL 0reaction image Wow! 0reaction image Wisdom
  • Think of every spreadsheet you have written. Why not turn that into a web based program with proper input screens validation and some fancy logic.
    Half of the spreadsheets I've encountered at work have no place in a a spreadsheet and should be proper database based applications 
    0reaction image LOL 0reaction image Wow! 0reaction image Wisdom
  • monquixotemonquixote Frets: 17636
    tFB Trader
    My suggestion would be to try some of the problems at Project Euler, or Hackerrank.

    To become a really good coder you need to take on substantial challenges that do real things.
    I like writing games. I wrote a shoot em up to learn HTML5 canvas, a Noughts and Crosses game when I was learning Haskell and I recently wrote a Sudoku solver in Go and then again in NodeJS with Lodash. 


    0reaction image LOL 0reaction image Wow! 0reaction image Wisdom
  • crunchmancrunchman Frets: 11453
    Think of every spreadsheet you have written. Why not turn that into a web based program with proper input screens validation and some fancy logic.
    Half of the spreadsheets I've encountered at work have no place in a a spreadsheet and should be proper database based applications 
    If your work IT and procurement people are anything like the ones at my work then you'd end up doing everything in Excel.  You are banned from using just about anything else.  At one point several years ago IT wanted to disable VBA but then they realised the company wouldn't function.

    I've written several things in Excel using VBA that should never have been written in Excel.  It's just that if IT and procurement get involved it will take months and probably cost around £30,000.  I can write something in a few weeks in Excel and the cost of my wages is about tenth of what it would cost to do it properly given all the idiocies of IT procurement in the public sector.

    More recently we've been using Powershell for things it was never intended for.  We can't (officially) run it on our networked desktops because of security so we have to RDP onto a remote server.  We're using it to crunch through data files and pre-process them before they get loaded into the official software so they don't crash it, or cause glitches.  Again, it's a few days of my time (or a colleagues time) or thousands of pounds to the supplier getting the software fixed, months of waiting, and thousands more for our IT department to test it before they will let us use it.

    You end up solving problems in the easiest way possible even if it isn't the "correct" way.
    0reaction image LOL 0reaction image Wow! 0reaction image Wisdom
  • BigMonkaBigMonka Frets: 1778
    crunchman said:

    I've written several things in Excel using VBA that should never have been written in Excel. 

    Lol, ditto! I've even written calculations in VBA in Word documents so that it correctly formats a calculation report. Engineering calculations poorly hacked in to a word document, if almost gives me the shivers.
    Always be yourself! Unless you can be Batman, in which case always be Batman.
    My boss told me "dress for the job you want, not the job you have"... now I'm sat in a disciplinary meeting dressed as Batman.
    0reaction image LOL 0reaction image Wow! 0reaction image Wisdom
  • JalapenoJalapeno Frets: 6393
    Great description. sadly because my product has so much legacy code I dont get to use these as much as I'd like
    But reverse engineering legacy code is where all the fun is at - my crowning glory was to take a buggy POS and refactor it until it sparkled - was uber reliable AND we got a set of common services out of it <sigh> the good old (coding) days - the sense of satisfaction was immeasurable.
    Imagine something sharp and witty here ......

    Feedback
    0reaction image LOL 0reaction image Wow! 0reaction image Wisdom
  • monquixotemonquixote Frets: 17636
    tFB Trader
    crunchman said:
    Think of every spreadsheet you have written. Why not turn that into a web based program with proper input screens validation and some fancy logic.
    Half of the spreadsheets I've encountered at work have no place in a a spreadsheet and should be proper database based applications 
    If your work IT and procurement people are anything like the ones at my work then you'd end up doing everything in Excel.  You are banned from using just about anything else.  At one point several years ago IT wanted to disable VBA but then they realised the company wouldn't function.

    I've written several things in Excel using VBA that should never have been written in Excel.  It's just that if IT and procurement get involved it will take months and probably cost around £30,000.  I can write something in a few weeks in Excel and the cost of my wages is about tenth of what it would cost to do it properly given all the idiocies of IT procurement in the public sector.

    More recently we've been using Powershell for things it was never intended for.  We can't (officially) run it on our networked desktops because of security so we have to RDP onto a remote server.  We're using it to crunch through data files and pre-process them before they get loaded into the official software so they don't crash it, or cause glitches.  Again, it's a few days of my time (or a colleagues time) or thousands of pounds to the supplier getting the software fixed, months of waiting, and thousands more for our IT department to test it before they will let us use it.

    You end up solving problems in the easiest way possible even if it isn't the "correct" way.
    This is why I'm so happy I work for a small company where no one gives a shit what you do as long as you get results.
    0reaction image LOL 0reaction image Wow! 0reaction image Wisdom
  • Great description. sadly because my product has so much legacy code I dont get to use these as much as I'd like but when I do get something that can be TDD'ed I find it really motivational as you feel like you are constantly making progress.

    By contrast when I'm working on the nasty legacy bits that are too intertwined to TDD properly without refactoring half the universe I often spend ages coding away on something with no feedback until the end only to find out when it's done that there are loads of problems I need to go back and address.
    Thanks. Something I've done recently with legacy code that doesn't have a test suite, is spend time writing a test harness which stubs out all the external dependencies - I prefer to test from the outer edges of the software because it's more likely that people will understand the high level, and also because those edges tend to change less frequently than the inner details. This helps me to learn about the code I'm working on, understanding how its put together, where the weird logic is etc. And then you have a useful test harness that you can use for TDD. I think it's time well spent, but it takes quite a bit of effort. I've found it useful as a solo exercise, and also with a pair or mob of programmers.

    Obviously, green field work is more suited to TDD because you can choose your starting point and incremental requirements to suit your approach to designing the software.
    0reaction image LOL 0reaction image Wow! 0reaction image Wisdom
  • monquixotemonquixote Frets: 17636
    tFB Trader
    I think the biggest advantage of TDD is that it encourages you to write pure functions which improves your code quality.
    0reaction image LOL 0reaction image Wow! 0reaction image Wisdom
Sign In or Register to comment.