1. Mr. Snuffleupagus

    Mr. Snuffleupagus
    Member OP

    Finally I'm able to make threads in ERA! I posted fairly frequently for years in the old place but wanted to have a new start here.

    Small info-dump - late 20's, living in the UK and graduated Uni (language course with 2:1) - been doing digital marketing primarily for the past 4 years with a variety of companies with a fairly decent (for me) salary of £35k-ish. My current company is looking for an iOS developer, paying around £70~75k for someone with 3~5 years of experience.

    My thoughts are that if I continue solely in this field (GA/AdWords/SEO-based work) for the next couple of years, I still won't see money like that.

    TL;DR - I want to learn programming/coding as a means to expand my skills/increase my salary - I pick things up quickly and am strongly motivated at the moment by money, so would be happy to invest time in this. Wondering how to learn these skills from scratch for little-to-zero amount of money spent and still have time to put into my 9-5 job. Any links/courses/tips/advice welcome, both in this thread or PM!
  2. the-pi-guy


  3. Mr. Snuffleupagus

    Mr. Snuffleupagus
    Member OP

    Thanks the-pi-guy - thats a start! Just wondering if anyone else has anything UK-based that might be of help? Looking to make a start in 2018!
  4. Bjones


    I have 5+ years iOS native objective c.. where do I send my resume? Lol
  5. butzopower


    I've worked with people who did Maker's Academy in London: http://www.makersacademy.com/ It costs quite a bit of money, and is pretty intense, but they will land you in a job pretty quickly after 12 weeks. Most of the graduates I worked with were pretty sharp and had definitely developed some chops.

    EDIT: Just realized none of this fits any of your criteria. Might still be worth looking into.
  6. Hollywood Duo

    Hollywood Duo

    Udemy is dirt cheap to pick up some courses on a whim especially if you wait for one of their frequent sales. Quite a few Brits do courses on there.
  7. Mr. Snuffleupagus

    Mr. Snuffleupagus
    Member OP

    Can you make it to London? ;)

    Some interesting points raised so far - just wondering if it’s worth my time doing something at the Open Univeristy or just studying online.
  8. astro


    Udemy is excellent, it's where I started to teach myself web development.

    Just make sure to check around for discount codes if they're not currently running an offer as they often have them floating about.
  9. Doom_Bringer


    The senior programmers and IT consultants I work with also use Udemy, coursera, edX

    Great resources
  10. Krejlooc

    Dreamcast Porno Party Member

    Came here to recommend MIT's stuff. Their operating systems class is particularly kickass.
  11. compo


    I'm a proponent of going through a good book. I would probably recommend Head First Java. The Head First series is excellent at explaining new concepts to people, and this book is highly rated on Amazon.

    Edit: fixed link
  12. Krejlooc

    Dreamcast Porno Party Member

    OP, I basically taught myself computer programming since the age of 9, and jumped around from subject to subject. While, obviously, I was still able to get a good grip on programming, there were certain essential subjects that I didn't have a solid foundation upon for years and years, that made learning other things actually really difficult. I eventually overcame them all with sheer motivation and studying, but it would have all gone a lot smoother had I just sat down and learned this at the very beginning.

    So I'm going to post a video series that will seem very abstract, and arguably many people will say don't even bother, but trust me, as someone who has spent a lifetime doing computer programming -- this is the single thing I wish I could have gone back in time to when I was first starting out to show myself:


    It's a tutorial on pointers in C. Pointers actually came naturally to me, and weren't difficult to grasp. But in teaching you pointers in C, the above videos layout precisely how computer memory works. And nobody ever taught me how memory is organized or allocated or any of that crap. I had to gleam it all from other sources, like I basically pieced it all together as I learned microprocessor assembly. Had somebody sat me down and taught me what the above playlist taught me from the very beginning, I could have saved a lot of headache later on.

    The entire series is only like 3 hours long. Trust me, give it a watch.
  13. Mr. Snuffleupagus

    Mr. Snuffleupagus
    Member OP

    Thank you everyone so far! It’s really helping for a basis - I just feel like I need to have some more marketable skills bar my SEO/campaign optimisation abilities.

    I keep remembering Zuckerberg's quote about people needing to get into programming and looking at the salaries in play, he’s not wrong.
  14. kickz


    Join a local 3 month Software Bootcamp course, your skills will improve and you should have a job around 50k by the end of it.
  15. Plumbob


  16. God


    Would also recommend Berkeley's intro to CS class and going through the labs and projects.

  17. I would only recommend Udemy if you actually do your research on the instructor. Most that say "beginner to pro" aren't that great and never teach you the right way of thinking.

    This is the best approach imo. Buy a good book to a programming language you want. Take a few free CS courses online and please learn how to use OOP correctly, good database design, and some design patterns. Some of the things I see in my job is just disappointing like repetition of code when you can stop doing that by either protocol-oriented programming or good OOP design.

    For iOS, Ray posts great iOS tutorials: https://www.raywenderlich.com
    For Swift, after learning the fundamentals first and getting used to the language, I recommend the guys over at: https://www.objc.io. They post great articles on iOS/Mac development, love their small video cast on various subjects, and their books are really great. They mostly focus on the swift language nowadays though.

    With more people becoming programmers, I think salaries will start to drop unless you're doing low level programming, AI, a software architecture, etc.
  18. rancey

    Banned Member

    Depending on where you live there might be some kind of bootcamp style or more relaxed course you can take that will set you along a good track. Those range from free (I've heard, in London, anyway) to thousands of pounds. I'm just about finished with a several month bootcamp style course and it's taken me through Ruby, Java and Javascript primarily with a lot of other stuff like databases along the way. I could throw together some shitty code to make a simple thing before I started this, through using online tutorials and just stumbling around in Gamemaker and then Unity, but now I feel like I'm at a point where I am worth employing as a developer. I'll be starting to look for jobs seriously in the next few days.

    If you don't want to spend a few thousand on a course, then yeah you can absolutely learn on your own, in my experience. How long it will take just depends on how disciplined you are, and you might end up going down some pointless/sub-optimal paths in terms of your coding habits or knowledge of certain technologies, but it's something you can start learning immediately. Like right this moment.

    As mentioned, tutorials are good and necessary at the very beginning, but do try and start working on a project as soon as you feel like you have your bearings. The walls you come up against will be real ones and you'll start learning how to do things you hadn't thought of or that aren't included in tutorials but you need to know.

    Hope the change works out for you. I'm in a similar life situation to what you described, so I'm looking forward to seeing how far I can take this thing.
  19. I would do that edX course just so you can get an idea of what programming even involves. You might hate it, but if you do something free like that then at least no money lost.
  20. Hollywood Duo

    Hollywood Duo

    Of course, always do your due diligence before any purchase.
  21. Contact


    As others have said, there are some really good resources online for you to learn to code, like coursera, edX, MIT courses, etc. If you wanna get your hands dirty fast you can also go to codecademy or research for some interactive online tutorials. I'd recommend you take a course on Python or maybe JavaScript if you are interested in web technologies as these languages are quite easy and widely used. You can start with any language you want though, but I think these are easiest ones to start.
  22. Mr. Snuffleupagus

    Mr. Snuffleupagus
    Member OP

    Thanks for the replies here - the bootcamps mentioned here look great - just worried about the amount of money needed to upfront.
  23. rancey

    Banned Member

    some of them might run smaller courses for a couple hundred as an intro to both the place and programming in general. keep in mind you might not like it once you start doing it more seriously.
  24. Spoo


    My best recommendation would be to pick up a book on the thing you want to learn. Like, if you want to learn programming, the best thing is to have an idea or goal in mind for something you want to build and then find resources that can help you get there. "Learning Programming" by itself is a fine desire, but without aim things can kind of slow down and discourage you if you aren't in a program in school or something.

    A book is cheap, and programming (assuming you have a computer) is free. It also requires dedication to read, re-read, follow along with examples in the text, etc.
  25. astro


    I finished my first year of OU with distinction. I focused and got as much from the course as I could, but there was a lot of general stuff unrelated to programming I had to get through before I got to the stuff I wanted to learn.

    It was all interesting, but generally useless for what I wanted to achieve. It was also expensive.

    Sites like Udemy allow you to pick and choose the exact focus you want, and they're often very cheap and discounts are common to find.
  26. I'm in a somewhat similar position in that I've been working for tech companies in commercial roles since Uni and the reality is that developers and technical staff, in general, are treated like royalty. Money is thrown at them, they get away with murder and they're always able to break into the golden circle.

    I've never had a serious go at learning to Program, it isn't coming naturally to me. I have no doubt I can force myself to be a reasonable developer but being a good one, I'm not so sure. I've worked with good developers, I know how they think and for the most part it is on the other side of the spectrum to the problem solving I bring to the table.

    I have however recently taken a new job that will involve a bit of coding, so I am spending January doing a course in Android/Java as that's what I'll need. Will also be refreshing myself on Agile, is there an agile thread on here? For the last six months I've been back to waterfall and it has wrecked my mind
  27. SlickShoes


    I’ve worked in IT support for over a decade and now I’ve moved to another country due to my wife’s job, I’ve always struggled with straight up programming languages so I’m doing web development courses just now and going to try and make a go of it over the next year. Getting yourself constantly motivated is a hard battle though especially if you are working full time too.

    I’m just using codeacademy and udemy so far, one of my friends is a software engineer and he does udemy courses whenever he has downtime at work that works for him to then learn something new and do a small project with it but when he’s busy at work he constantly feels like he’s not learning enough.

    Basically it’s a never ending learning treadmill you have to have the brain for it and a real desire to do it, not sure many are in it just for the money
  28. MajorBritten


    Im glad someone started this thread as im in a similar situation. I have been living in Japan and teaching for the past 3 years but was just screwed over by my company and am now looking for work that isnt teaching. Are there any recommendations for a complete novice to get started? Also are there any certifications (which I can do online) that will be helpful in getting a job?
  29. Mr. Snuffleupagus

    Mr. Snuffleupagus
    Member OP

    Spent 6+ years in Japan - unless you're staying there due to marriage, you might want to consider coming back the UK as I did. Can't promise your personal life will be more fun, but your salary and work conditions will certainly be better - more than happy to discuss further on PMs if you like.
  30. Mystic Vivi

    Mystic Vivi

    As a self taught software engineer you must first understand coding language is huge.

    To answer your question first you must figure out what you wanna be involved in. Coding in games is different from experimental physics which is different from algorithm work.

    From there I could begin to point you in a better direction. Try to avoid people steering you in tons of directions right now. It’s absolutely crucial YOU choose. This is a massive undertaking and double the salary probably isn’t good enough drive. You’ll need to find out what you have to offer the world and harness that potential as your fuel.
  31. Dougald


    As you're in the UK have you considered an Open University course? You don't need another degree but I'm sure they have a module or two that will give a good grounding.
  32. Mr. Snuffleupagus

    Mr. Snuffleupagus
    Member OP

    I've been on the other place for 5+ years and here since the beginning - games are a big part of my life. I understand the point you're making about honing my goal - referring back to my original post; my company is looking for an iOS developer to work on our app to fix bugs in the short-term and develop it in the long-term for things that (to me) seem relatively easy to complete. We've had a pretty lax Dev Team up until now (as far as Dev Teams go) and I know I have the motivation to learn in order to gain skills to not only help in my current company, but to take these abilities + my GA knowledge further afield - working as freelance one day, moving around, would be perfect.

    So.....experimental physics/algorithm work lets go with no, app/game development would be more of a focus for now. Looking at my company's ad, we're after someone with knowledge of Swift 3/4, Obj.-C, RESTful APIs, iOS frameworks etc. - this obviously doesn't mean much to me now, but I have a desire to learn and so wonder where best to begin to aim myself in the right direction that I begin to learn these skills as I'm genuinely interested.
  33. butzopower


    The major thing you need to be able to do is problem solve and figure out what someone is trying to communicate to you.

    Figure out what each of those concepts / qualifications / languages that are in that job posting are. Not in depth, but at the surface. Learn how to learn the things you don't know to make the best decisions with the knowledge you have.
  34. Shahed


    Sorry to hijack this briefly, just wanna ask more about Udemy. Once you 'buy' the course, can you start and stop at anytime? And do I have them for good?

    Was looking at a general HTML/CSS3 and a Javascript course and they were $12 each. If they actually work and I commit myself tk learn, that's fairly cheap. Heck if they're that cheap I might even get one for C# and Python
  35. Koren


    Hard to give specific advices (I really should take a couple of MOOC so that I can see if there's good ones, I'm always lost when I'm asked this question, though it's not always easy to judge when you're not the target), but try to find a not-too-ambitious project to work on while learning, it helps making thing more interesting.

    Also, you'll always be welcome if you need any kind of help in the Era OT ;)

    Same (well, I was 7) except that I don't think it was wasted time (or especially hard). I discovered later that most algorithms I've designed were well known, but at least I learned everything my way. But that's only possible because we had time. When you have a specific goal in mind, speeding up the process is indeed welcome.
  36. crimzonflame


    Yes you go at it at your own pace.
  37. Shahed


    Oh that's cool. Guess I'll get them then. Thanks!

    At £34 in total it's effectively nothing and I can do like an hour a day in the evenings and maybe more on weekends. I'll see. Since they're paid I will actually make sure to do them unlike free stuff which in the weird way my head works I can see as throwaway (even if they can be just as good or even superior to their paid alternatives) at times.
  38. akintheuite


    What books would you recommend for an absolute beginner?
  39. Mr. Snuffleupagus

    Mr. Snuffleupagus
    Member OP

    Shahed Good questions that I also had - I appreciate you asking them here!

    Will be reaching out to my company's CTO later in the new year for some more advice but in the mean-time will be seeing Udemy goes. Incognito Mode brings up £12 pricing for me it seems...
  40. Shahed


    It's 12 dollars so it's actually even cheaper. Good luck, and thanks for creating this thread. Otherwise I might not have gotten the push to do what I've been meaning to for ages now
  41. Daffy Duck

    Daffy Duck

    Have you started any courses in Udemy OP?

    I’m considering buying the angular/react ones and just wanted to know how you found our selected courses for content etc?
  42. twofold


    It's doable. I worked in marketing (I just moved into product management a few months ago) and £60k+ is doable for a 'senior marketing manager' in London. 'Heads of' are on more.

    You need to learn which marketing skills are valuable and find a business that appreciates them - they're rare, but they're out there.

    Do you work for an agency? Inhouse? What vertical?
  43. picmar


    I started withfreecodecampabout 18 months ago. Think I spent about 8 weeks in total working through the basics with enough knowledge to abandon the micro-exercises to begin prototyping a webapp.

    My advice would be to start with something very simple (as above), being mindful of the kinds of applications you might have for the tricks your learning. Once you have derived a project - youtube videos, github/stackexchange and API manuals should be enough to cobble something together that works. I managed to get a student licence for JetBrains WebStorm as well (was studying an MSc at the time), which helped to keep things manageable. After about 6 months I had a full-stack node.js/mongodb platform with a custom UI (html5 and css). One of the best learning experiences I ever had.

    Obviously, this route is geared up more towards web development. But it's as good a place as any to start and get a feel for how it all works. The best thing is programming is absolutely something you can teach yourself in your own time. The internet is a rich source of information; there is a global community of programmers out there who have already encountered any problems you might be having and recorded their solutions. Alls that's required is a bit of trial and error persistance. And if you stick at it, there will be plenty of gratification along the way.

    Good luck OP!
  44. Spoo


    That kind of depends, again, on what you want to do. Programming isn't quite like math where if you said you were a complete beginner we could run you through a linear path up to a certain point that works for everyone (I mean, we can start completely aimlessly, which is sort of how CS courses in school work, but it's boring, technical, unfriendly, and --like math-- can take far too long to see how it it helps you reach a goal to the point where you are more likely to give up). Like, if you want to make games, I'd pick a book that has a title like "How to learn programming through games." Like the most important thing imo is to make sure you don't bite off more than you can chew: if you're a complete beginner, then you can't (or shouldn't) choose books that are clearly oriented to non-beginners. Reading reviews for books can genuinely help for this: if you're looking at a beginner book, then you're going to see the impressions of *other* beginners like yourself. If they had trouble learning from it, then you might too.

    The other complicating factor is that languages aren't created equal in terms of simplicity. Depending on your personality, if you're a nuts and bolts kind of person, then try to start with something like C++, or maybe C#. If you are more interested in making larger leaps with less, other languages might be better. Also some languages are more specifically geared towards certain kinds of development.

    This takes research to figure out, and guess what: You might fuck up. You might buy a terrible book and have trouble with it. You might take bad advice. But ultimately you'll know when things start to work when you start learning and retaining.

    The nice thing is that none of these fuck ups are fatal. You might need to unlearn some stupid things, but even in that process you'll become better. Be dedicated, and you'll learn it.

    Thanks to the interwebs, you also don't have to rely on just (1) resource. Website tutorials, books, media, free courses, hell, even youtube videos can get you closer to where you want to go. Know where you want to go.
  45. I'd say learn C# as a first language, super solid, versatile and guaranteed employment, it covers a wide range. You want to do game development? Unity, Web? .Net, Desktop Apps? .Net, mobile apps? .Net

    And besides once you learn C# learning C++ becomes MUCH easier than if C++ was your first language.

    Damn might have to share that pointers vid, I've never been able to explain it well to others it's just something I know. Good stuff.
  46. Spoo


    Okay, so, this is the kind of thing that is absolutely integral to have an understanding for -- eventually. And in a lot of Computer Science programs, you're going to get that exposure whether you like or not. I was supremely lucky to have many talented teachers teach it, and do so correctly.

    That said.

    The various pedagogues out there -- and I'm speaking to the random passerby who comes in here looking for advice to start programming now -- vary wildly in what they think is important. Now, if you think about it, people tend to teach the way they were taught, or at least, the way that made sense to them. This makes sense. But if I've learned anything from interacting with people who program, whether they've been doing it for 10 years, 30 or just 1, it's that there is a lot of variance in how we learn, and that's really important to understand.

    For example, some people learn from teachers and school. Some people struggle in school, but find a YouTube video or two speaks directly to them on the exact same subject. This pointer video is a good example of that -- it's meant for people who ran into a concept they didn't understand, and to give them a resource for solving that lack of understanding.

    So I would add some advice to this thread to those looking to learn: be cognizant of how you learn. Understand how you *prefer* to absorb information, but also how you succeed in absorbing information. It should go without saying that when it comes to a practice like programming you must practice, but the resources which inform your practice must be both accessible to you, but also congruent with how you learn.

    So, if you *don't* like books, if you've always hated reading, if the notion of purchasing or reading a bible of text elicits your gag-reflex, stop and think about what that means in terms of how you should proceed. Maybe, a book is not the right approach, even though with enough time and dedication you *could* do it. If you've always learned by having a professor place the metaphorical gun to your head in terms of a "due date" on an assignment, consider a class. If a class is too costly an affair, consider an online program -- either the far-reduced costs one you see on well-established websites, or (and this really can't be overstated how good these can be) free website resources in the forms of videos. Some people are visual learners, and they want to see pictures, and they want to be able to press "Pause."

    Chances are good, if you're reading this right now, you know how you learn when it comes to resources. And you need to understand that people who teach, books that teach, videos that teach -- they have various different ways of doing this. It may take a little bit of time for you to figure out which resources complement how you actually learn difficult topics. So, a further strategy to add onto a previous post of mine:

    1) Figure out what you want to do
    2) Figure out what technologies can take you there
    3) Figure out *how* you learn best
    4) Purchase, or otherwise locate, a source of learning on the technologies you are interested in that complement how you learn
    5) Practice
    6) Fail
    7) Practice
    8) ... Eventually succeed

    There is one final resource that I haven't referenced: other people. If you're in this thread, then there is a good chance you thought of this one ;) But it goes far outside here, and into the realm of the offline world. Do you have friends or family that know how to program? If you do, there is a very very good chance that you can harness their knowledge to steer you, or in some cases even help to mentor your efforts. This isn't one of those things you have to do *completely* on your own, and in fact, very few can say they have. Just understand that if you do ask for their help you will be subjected to their ideas, and so long as you understand that you may not find success in the approach of another person, don't let that be a deciding factor in continuing or giving up.

    One of the things I've heard so often is: Programming isn't for me because {X}. {X} is usually something to effect of "I'm not smart enough," or "I'm no good at math", or something to that effect. Programming will make you smarter, and it will assuredly make you better at some math, but neither of those things are necessarily a prerequisite to *start* writing code. Take that negative idea that is in your head and throw it the fuck away, because it will only serve to impede your efforts. Forget any preconceptions you have about difficulty, and the like. That doesn't mean it will be easy, as nothing worth doing typically is, but anyone here who is some grizzled vet will tell you the same: you need to crawl, then walk, then run -- and crawl again much later on.
  47. I...know pointers I have a BS in CS I'm just terrible at teaching it to others lol. I'm just not good teacher.
  48. Spoo


    Sorry, my post was more in reference to the video itself, and not your comment on the video, so I probably shouldn’t have quoted you. Not sure how you got what you did out of it, though.
  49. Apeach


    I've always admired your technical posts, both on the gaming side and OT. I would be interested in knowing if there are any other books/courses you personally consider to be essential.

    I'm mainly interested in the in depth hardware related things such as the workings of game consoles, emulation, etc.
  50. butzopower


    I think to Spoo 's point, there are many ways to learn that work for different people. One I've seen that works quite often is learning via doing. Code Katas can be a nice way to start practicing coding. Essentially a kata is a small exercise that you can do over and over again to gain better understanding of a problem. It might be worth giving exercism (http://exercism.io/) a shot. It's totally free and open source, and essentially will let you learn the basics of a language via lots of small exercises, submit them, and get feedback from others on how you could have coded it differently. Here's there guide for complete newbies: http://exercism.io/how-it-works/newbie You'll also learn how to use some command line tools, which is probably good to get comfortable with. As far as languages go, I think it depends a bit on the OS you'll start coding on, but JavaScript, Ruby, Java, and C# (Win) / Swift (OS X) are probably decent places to start.