Learning to code/changing career

Discussion in 'computers, web and general tech' started by Threshers_Flail, Nov 8, 2018.

  1. Threshers_Flail

    Threshers_Flail Well-Known Member

    Speaking to a mate of a mate last weekend who told me how he went from being an unemployed philosophy graduate to getting into software development and it sounded doable. I hate my current job: it's insecure, lowly paid and there's no opportunity for advancement.

    Any software developers on here with any advice on how to get into it? I've just signed up for an account with freeCodeCamp, any other places I should be checking out? Obviously this is all very new and somewhat overwhelming.

    Cheers.
     
    Last edited: Nov 8, 2018
    stuff_it, maomao and Badgers like this.
  2. mauvais

    mauvais change has become unavoidable

    I'm a professional software engineer.

    What do you want to achieve? What are you able to commit to it? Why do you think you'd be a good developer?
     
  3. TruXta

    TruXta tired

    Coding does not equal software development.
     
    Badgers and a_chap like this.
  4. mauvais

    mauvais change has become unavoidable

    I'm not sure what point you're making. Being able to write code certainly doesn't make you a software engineer. But there are lots of people being paid to write software, called developers, that are more coders than engineers.
     
  5. TruXta

    TruXta tired

    Just that OP seemed to equate the two, when that's a limiting way to look options. You can code all sorts, doesn't have to be software that you're making.
     
    Badgers likes this.
  6. a_chap

    a_chap When the world came apart, where were you?

    Badgers and Threshers_Flail like this.
  7. girasol

    girasol Ubuntu

    Not sure you can get any jobs coding in Basic? My first language was Pascal (at university) - then Java. Been out of the industry for a couple of years, but Java and C++ probably still widely used? I also used Javascript A LOT, Perl and SQL.

    Just to give you an idea of what's out there in terms of languages

    List of programming languages - Wikipedia

    Really depends what you want to do...
     
    Threshers_Flail likes this.
  8. a_chap

    a_chap When the world came apart, where were you?

    Hey, my first proper job was doing exactly that. However, that was, er... 1981 :D
     
    girasol likes this.
  9. Threshers_Flail

    Threshers_Flail Well-Known Member

    Out now will reply later, but cheers for the replies!
     
  10. girasol

    girasol Ubuntu

    well, quite, that's the thing with this industry and what made me want to leave after 15 years, it's constantly changing and I didn't care enough to keep learning new languages and didn't want to move into management! I did learn quite a few though!

    Found this... https://usersnap.com/blog/programming-languages-2018/

    Also List of programming languages by type - Wikipedia

    I think C++ and Java + SQL would get you the best paid/biggest pool of jobs? *at least it used to (I still get contacted regularly on LinkedIn for Java/SQL jobs)
     
    Last edited: Nov 8, 2018
    Threshers_Flail likes this.
  11. FridgeMagnet

    FridgeMagnet Administrator

    If you want some encouraging opinions, all the best developers I know have not come from a straight computing background and had lots of formal training. I'm a bit unusual in that I have a computer science degree, but in my defence I fucked about through a lot of it just doing things that interested me and going to clubs, and got a 2:2.

    One reason for that (the background thing, not me fucking about) is that while learning to program is challenging and takes time, getting to a competent state is perfectly manageable for most people if they're interested in what they're doing, and there are lots of resources for the tech side. What are way more valuable are the "soft skills" - so-called by sneering techbros - like being able to work with other people, knowing what you're supposed to be doing before you do it and knowing when you need to ask for more information, being able to express what you mean and also understand what other people mean, and being able to take what you learn, interpret it and draw conclusions. These are hard to teach but can be learned in lots of different ways.

    This is not to say that employers necessarily appreciate the above, and also not to say that software development can't be insecure, lowly paid, and with no opportunity for advancement. The latter is particularly true, though at least the salary tends to top out at a reasonable level.
     
  12. I always find that in order to learn something you need some kind of project with an end point rather than simply studying it. You learn along the way. So try writing a simple game or text adventure or something and build from that.
     
    RubyToogood and mauvais like this.
  13. girasol

    girasol Ubuntu

    Another area that was growing quite fast when I left 3 years ago was security - one of my regular tasks, on top of programming, was to run security scans, identify which were real security issues and fix them. Also, Accessibility compliance is another area with lots of work.

    (p.s. my route, by the way, was via a Computer Science degree, but I worked with someone who had a degree in Philosophy, another in Maths and yet another one in Biology!)

    ONE THING THOUGH! Be ready to put the hours and the work in! You need patience, a logical mind and dedication. You need to be interested in this or else you will die or boredom and despair (many people at uni who just gave up their programming modules because they just didn't put the hours in and found it boring or impenetrable).

    There's a reason these jobs pay well! It's actually not easy to find good software developers.

    Also you can go into testing, which requires a different set of skills (although generally developers should be good testers too, people are employed specifically just to test)
     
    Last edited: Nov 8, 2018
    Fez909 and mauvais like this.
  14. Threshers_Flail

    Threshers_Flail Well-Known Member

    1. A decent job!
    2. Daily from 30 minutes to 1 hour - no kids nor any other commitments, one of the few good things about my current job is that I don't work many hours so have some spare time.
    3. I like problem solving and learning new things, but honestly I don't have a clue.

    Basically I'm looking to give freeCodeCAmp and Codewars a go to see if I enjoy it and can see myself doing it professionally. What I'm asking is if anyone knows of any other learning apps/websites/courses that I can do to get a feel for it.
     
  15. mauvais

    mauvais change has become unavoidable

    This is crucial. I'm not sure I agree with your earlier point about the best developers not having a degree, as I know many great engineers who have one, and some who don't, but this is a fundamental point; formal education is almost useless without these skills, and so people who come late to software from other disciplines have a headstart in some ways because they've led balanced lives where this stuff is just more normal.
     
    girasol and Threshers_Flail like this.
  16. Threshers_Flail

    Threshers_Flail Well-Known Member

    Very encouraging, thank you! I appreciate that I'll need more than just program skills to get by. For the tech side, are there any resources you'd recommend for a complete beginner? I'm looking to start with SC50's intro to computer science then move on to freeCodeCamp, bit confused as to which road to take as there's loads of free courses and websites to go for.
     
  17. stuff_it

    stuff_it stirred the primordial soup

    There's a huge shortage of decent tech writers atm. So much so that even I get work.

    If you can write well and pick up tech/business stuff quickly it may well be worth a try.
     
    Threshers_Flail likes this.
  18. FridgeMagnet

    FridgeMagnet Administrator

    I don't really like videos personally; if I want to learn something new, I buy books, which I find more focussed and with a more coherent plan. The O'Reilly books are generally well respected and most of the best ones I've used have been those.

    It really does help to have some sort of project to work on that you've thought of (or have to do) based on things outside of the training course. This helps you learn the skills of how to apply technical knowledge to project requirements that haven't been tailored specifically to a course. I mean, do work through examples and so on, but you need to make something for yourself that's not based on a curriculum to top things off, since that's what you'll be doing if you want to get a job with it.

    As an example: I'm learning React at the moment. I think that I have a fair grasp of the basics of pure React now, but I also have an idea for a web interactive fiction piece that I could do in a number of ways and have decided to do with React. This has no connection to anything in the book I've got but is a relatively simple real-world application for what I've learned by reading it.
     
  19. mauvais

    mauvais change has become unavoidable

    OK.

    I think you should be looking at human-taught, in-person courses with active involvement if at all possible, because with no experience you'll probably be quickly lost in a world of the technical without any steer otherwise.

    In the first instance, you're not looking to see if you can project forward to doing it for a living. You're looking to see if you can get onboard with the concepts and whether solving problems in order to make a computer do your logical bidding is something that actually gives you any kind of thrill.

    There's a lot to take in here, and you shouldn't be seeing these first steps as any kind of linear path to success. What you learn upfront can't necessarily be built upon as such; you will write shit code, have shit and wrong ideas about it all, and you will have to forget what you know and relearn it all properly multiple times if you want to proceed with any seriousness. So don't overthink it right out of the gate.

    This is critical. Pick something that you actually want to do, that's small and achievable, and then set about trying to do it. If you bring the basic idea, we can advise ways to proceed. It doesn't have to be novel but it should interest you. Simple text adventure is probably a good one.

    But wait, I've got some more advice for you:

    - Ignore fashion and evangelists, learn some fundamentals. Choose a learning language. Ignore every bellend who says, oh you simply must begin with [language] on [platform]. Pick something that works for you and your chosen project. Again, it will be shit. You need to throw it all away afterwards.

    - Ignore jobs and the market, because again, who cares, learn some fundamentals.

    - Write notes, keep a diary or even a blog, do reflective writing. That's what graduates and apprentices do.

    - If you decide it's for you, join a community and start talking about software, not just writing it. Seek advice and verification/validation, a lot.

    - Read some books about practice and methodology

    I don't have any specific website recommendations or anything. Avoid coding competitions, focus on educational resources.
     
    AnnO'Neemus and Threshers_Flail like this.
  20. stuff_it

    stuff_it stirred the primordial soup

    Also you can easily mix writing work with study. When I didn't have much portfolio I just offered "urgent" Upwork clients with decent rates a paid sample article, largely because I cba to write for free to build up a portfolio. :D

    There are a lot of low rates on sites like that, but no rule of having to take them. When you see the description of what sort of writer they're looking for it's often obvious that they have been dealing with a lot of muppets.
     
  21. Threshers_Flail

    Threshers_Flail Well-Known Member

    Cheers. That's what I like from what I've seen about freeCodeCamp, they have projects that you can get involved with that sometimes involve doing free work for NGO's and the like, which I think can help me build a portfolio. I spend too much time online anyway so may as well do something productive with it for a change.
     
  22. FridgeMagnet

    FridgeMagnet Administrator

    To be fair, the best ones _I_ know don't have a CS background. I guess I really want to emphasise that the technical part is something that you can learn relatively quickly, and which doesn't need a deep background in anything.
     
  23. It’s the concepts that need to be understood. The same ones will exist across languages.
     
    girasol likes this.
  24. AnnO'Neemus

    AnnO'Neemus Is so vanilla

  25. AnnO'Neemus

    AnnO'Neemus Is so vanilla

    And check out the groups that meet up in MadLab, there's a drupal group, Ruby on Rails, Python etc

    Events Archive - MadLab
     
    Threshers_Flail likes this.
  26. a_chap

    a_chap When the world came apart, where were you?

    I'm convinced that some people's brains simply aren't wired the right way to ever become competent programmers.

    I used to have a member of my team who wrote the most truly awful code and no amount of explanation resulted in improvements. There was a company restructure and - thankfully - he was moved into someone else's team. However this meant we had to support applications he'd worked on.

    One such application needed a small change which fell to me to do. I looked at the code: it was fucking diabolical.

    One piece of code had to decide where to route a message. He'd managed to write something so appalling (many, many nested IF this ELSE that ELSE IF this OR that AND NOT, etc) it was actually a thing of terrible beauty. I was so impressed that I printed it - it completely filled a sheet of landscape A3.

    I replaced it with a function which was:

    if A return X
    if B return Y
    return Z

    Just. Three. Lines.
     
    mauvais, spitfire and girasol like this.
  27. girasol

    girasol Ubuntu

    I'm still in two minds about this, but maybe, or maybe it's just practice. I had a friend who was incredible at Maths, the best student in the group, because she had been into it since childhood. However she really struggled with writing code, she just about managed to pass this unit we studied together and I had to help her out a lot. But I do believe with time and practice she would have been good. It was just a case of her not putting the time in and not having the patience, as she was so used to picking up Mathematical concepts so easily!

    I still don't know why I picked it up more easily, I was 23 when I started programming - I do think it had something to do with me spending hours and hours on end in front of the computer ;) Sometimes I'd sit down early evening and it'd be 4 in the morning and I wouldn't even have noticed the time go by. So like I said earlier, I think you really need to like a challenge! It really is like learning a new language and to become fluent you have to immerse yourself in it. Interestingly the same thing happened when I moved to the UK and couldn't really speak English, 6 months later I made huge progress because I only spoke/read English.
     
  28. 8ball

    8ball Considerably more oppressed than yow

    A strong streak of masochism also helps.
     
    girasol and a_chap like this.
  29. AnnO'Neemus

    AnnO'Neemus Is so vanilla

  30. 8ball

    8ball Considerably more oppressed than yow

    There are a lot of people being paid to write software that I would barely call coders.
     
    a_chap likes this.

Share This Page

  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice