My feed
Premium

Please
or
to access all these features

AMA

I learnt to code at 27 - AMA

213 replies

OliviaSoprano · 12/12/2020 19:02

Before anybody tells me to get over myself - I do know that there is absolutely nothing special or interesting about this! But women are still so under-represented in tech and I think far too many see it as an area that is "not for them" / a career option that wouldn't even be worth considering. I felt exactly that way three years ago but then I tried it and realised that I bloody love coding and now I'm working full time as a software engineer and really enjoy my job.

Just thought I'd start this in case there is anybody out there who may have questions about what's actually involved or how to go about starting to learn the necessary skills (or anything else obviously, it's AMA!)

OP posts:
Report
OliviaSoprano · 14/12/2020 18:31

And what does a typical day at work look like for you? Do you work from briefs? Do you have much contact with clients?

I work on one particular "product" - an online platform that is Software As A Service/ SAAS and does something technical for other big companies (interesting to code but, my God, makes dull small-talk fodder at dinner parties and the like) so there's no concept of a client really. Obviously we have customers, and I don't personally have contact with them no.

As to how we work - as in most tech workplaces we use an "Agile" system of project management, there is too much ridiculous jargon to go into any detail as to what this entails but essentially it means that we like to break things down into chunks, we make each piece of work into a ticket with points assigned that correspond to difficulty and we break time down into "sprints" (not all Agile working is sprint based but I'll leave you to google to learn about Kanban and waterfall...). In each sprint we aim to do a certain number of points worth of work. Being Agile also involved being very introspective. We have meetings at the end of each sprint to discuss what went well and what went wrong. It's very anti blame and personal recrimination, we frame everything as what "the team" has done/should do and we make lists and set goals during something called a "sprint retrospective".

An actual normal working day now that we are at home is pretty structureless, other than a "stand-up" in the late morning where we all give a daily update. We are not monitored at all closely and there is a lot of flexibility in terms of taking time out to go and do whatever during in the day. We are expected to be online on Slack if working and available to ask/answer questions. We all help each other a lot and the chat on Slack is pretty constant.

That's specific to my company but from what I know is pretty representative.

OP posts:
Report
Dinosaur765876 · 14/12/2020 18:50

Thanks for answering my questions! That all makes sense. That's how the database team at my organisation work, so quite familiar.

Report
MyDucksArentInARow · 15/12/2020 01:50

To give a different perspective of day in the life of...

I'm a consultant, so unlike OP I am client facing. My reason behind this is because long term Product delivery isn't my cup of tea. I much prefer project based work. Ideally I work with a customer for 1-6 months.

Project work can vary, it can be discovery work, focusing on designing a roadmap for a customer to achieve their "moon shot"/dream. Or it can be a longer project actually building out a platform, or programme for them. As I work mainly with data, it's architecting and building a platform, or implementing specific data processing algorithms, or even getting hands on with some cognitive sevices (image recognition, chat bots etc). That's why I love consultancy, it's very varied.

My day normally starts with doing all my internal admin, and a bit of training. I like to try to do 30 minutes a day of video based learning on Plural Sight. (Not great for beginners, but amazing once your in career or in an area and focused). I then prep my tasks for the day. Join stand ups (I'm normally on 2-3 projects so do one for each). Then start my first task. I spend 75% of my time doing my own tasks and 25% in meetings. I try to group of meetings into the morning or the afternoon so I can get some focus time to do tasks, context switching can completely derail a technical task so I try to minimize it.

Like OP, we do agile project management so effort is focused to particular deliverables over a sprint, lasting 2-3 weeks depending on project.

Best bit is really difficult business problems to address and lovely customers. Worst bit for me is rude customers and long term projects.

Hope that helps anyone watching this thread to know it's a really varied industry.

Report
Sixorseven · 15/12/2020 20:58

I took the expensive shortcut with my training and did a twelve week bootcamp which cost £8000, this price is pretty standard but there are sometimes discounts for women. It can definitely be done for about an eighth of that though will require a lot of hard work and initiative.

@OliviaSoprano hello and well done! What an amazing career change and finding something that clicks.

I have signed up to codeacademy and planning to go through HTML, CSS, JavaScript, Python, some of it will be as a refresher from few years back, some new from scratch.
What should be my next steps be if I want to avoid a Bootcamp style study?

Thank you

Report
OliviaSoprano · 15/12/2020 22:12

Really good to hear @Sixorseven, that sounds like a great first step.

I would say concentrate on working through the material there for a little bit to just get yourself acquainted/reacquainted with the very basics and to absolutely confirm that you enjoy it enough to want to take it further. Then I would look at building some things for yourself - very basic things to start with using tutorials even as a first step. (Classic "first projects" are things like making a working command line calculator or an HTML/CSS/JS rock, paper scissors game.)

My mentee (whom I volunteer to coach and advise outside of work) actually did nothing more than a few Codecademy courses before applying (cold) to local tech companies to do an internship. She is now learning "on the job" whilst being paid minimum wage (or close enough) and is very happy with the set-up. The contract is six months and she may stay with them after or apply for a role as fully fledged junior developer. Not an easy thing to make happen or be successful with but great if it works out!

I have also just seen that I have a PM from you, so sorry for not responding, I was not ignoring you, I've just been on the app. I will reply with some more specific information about bootcamp syllabuses (and what you can aim to teach yourself) in the morning Smile

OP posts:
Report
ErrolTheDragon · 15/12/2020 22:53

Lovely thread. Smile

I'm a coder, of sorts, I write scientific software.
I did a FORTRAN course during my chemistry degree on cardsShockGrin^ ,^ wrote a bit of code to do something I needed to during my PhD, managed to get a job in a fairly new field and have been doing that for about 35 years during which time I've learned C++ from a book, html to format documents, Perl by googling and swearing at it and now a few weeks off turning 60 I probably need to learn Python.

It's fun (when it's not frustrating!) and there's always something new to learn, isn't there?

Report
pinfloy · 15/12/2020 23:06

Are you doing advent of code?

Report
RunaroundSuzy · 15/12/2020 23:15

I would be interested in the response regarding bootcamp syllabus if you would be so kind to post that on the thread. I've been following with interest

Report
Dollybagwash · 15/12/2020 23:50

Wow I love this. I have been trying to learn SQL this year at uni but as it's all remote I am really struggling. I'm a mature student and doing modules in with comp sci students so feel so out my depth.

I have signed up to a mentoring programme so hoping that helps. I understand the absolute basics of code but that's it. Will be a miracle if I get this degree but good to read of other people doing it later in life and being successful.

Report
TonyBennsCat · 16/12/2020 06:23

Errol, I learned to program in COBOL on coding sheets and punch cards in the 80s. Also did Fortran and Pascal when I went back to uni. I’ll be 58 soon and still learning new things - it’s probably the best thing about the job. Apart from writing SQL queries which I still adore more than anything else I do.

Report
OliviaSoprano · 16/12/2020 15:59

@RunaroundSuzy

I would be interested in the response regarding bootcamp syllabus if you would be so kind to post that on the thread. I've been following with interest

I started writing this intending to keep it succinct and just give a brief overview but then I just kept on rambling as I thought of more and more stuff so apologies for what's coming... I hope it's a little bit useful. It's loosely based on what I actually covered on my bootcamp but by no means exact or complete as I don't remember exactly or completely (and don't want to be sued!).
OP posts:
Report
OliviaSoprano · 16/12/2020 16:01

Full-Stack Coding Bootcamp Essentials (focussing on web development):

  • Learn how basic webpages are made, this will cover:
  • HTML elements, CSS selectors, inspecting web pages using dev tools (this is very important for front-end development and a great way to learn, right click and then click inspect to try for yourself now!), positioning on a page using FlexBox/ CSS grid, animations, CSS frameworks like Bootstrap (these tends to be how CSS is used in the real world)
  • First tasks/learning exercises in this area might be to create a few basic page layouts using just quadrangles on a page copying some mock-ups (much harder than it sounds!) and then to try and exactly copy some more complicated designs that incorporate links and images etc
  • These first tasks should be done using an IDE or code editor like Atom or VSCode and with this we should also get a basic understanding of project structure, how files work in directories and..
  • Start using the command line/terminal – essential commands, moving between directories, making files etc
  • First taste of git and GitHub: learn about branches, first few exercises should be committed and “pushed up”

  • Introduction to JavaScript, what is it? Why is it needed? What differentiates it from other scripting languages? (Hint: client-side) How does it interact with HTML and CSS?
  • Learn the basics of JavaScript: datatypes, functions, loops, conditionals
  • Learn what the Document Object Model (DOM) is and how JavaScript interacts with it.
  • First mini project (for most people this will be quite challenging) – Rock, Paper, Scissors game with HTML,CSS and JavaScript. For added complexity add Lizard and Spock.
  • At this point start doing little JavaScript challenges too, sign up for Codewars!
  • Introduction to slightly more advanced JavaScript concepts – objects, classes, constructors, promises, what the fact it works asynchronously actually means (it’s unlikely much of this will make much sense at this point and it is where a lot of people have a bit of a freak out so don’t worry too much about these concepts, just get a bit familiar with the terminology etc)
  • First big project – give yourself a week to make a classic game using vanilla Javascript with HTML/CSS, decide on which game based on your confidence with JavaScript. It’s probably a good rule of thumb to think, if you can sort of envisage how you would go about coding the game without googling every single thing (a bit of googling is fine) then it’s roughly the right level. Most basic being something like Noughts and Crosses to most advanced PacMan or Tetris. This will take a solid week of hard work, the project will be committed to GitHub and at the end of the week made “Live” using GitHub pages .

    Learning a front-end framework:
  • Good options are React and Vue, maybe Angular (though this is slightly less fashionable now).
  • Learn answers to questions such as - What is a framework? What are the advantages of frameworks?
  • Introduction to the concept of APIs using public, third-party examples (TFL and MapBox are good basic examples)
  • API is a vague term and Googling what it means probably won’t get you far as it is applied so broadly, what we’re talking about here are data sources that we can query using HTTP requests. This system of requesting is a Client- Server protocol and basically how the internet works, clients (can be a user via a browser) talk to servers (there are many different types of server) via APIs (sort of).
    We can start using Insomnia or Postman to make http requests to public APIs (we actually talk about “consuming” APIs in this context), and this is our first introduction to the idea of REST (“representational state transfer”) as an architectural pattern. (Don’t worry about fully understanding any of this terminology at this at this point as I found that these things only really made any sense a good few months down the line, GraphQL and REST are the only two HTTP request formats that you are likely to encounter)
  • Project – Use the framework you have chosen to create an app that consumes a third party public API and does something with it. Examples include things like making a multiple choice music guessing game using the Deezer (or similar music) API or making your own version of IMDB.
    Moving to creating our own Back-end:
  • Learn about databases – relational vs non-relational. Learn the basics of SQL as language and and how it is used to interact with databases. Download Sequel Pro and Insomnia (or apps that do the same thing)
  • At this point you can choose to stick to JavaScript and use NodeJS (JavaScript for the back-end or switch to a new language like Python or Ruby (not the most fashionable but very good for beginners).
  • What is CRUD? It is an acronym for Create, Read, Update, Delete - the key things that we do with data. So far we have only done the reading bit, via the APIs used in the previous project. Soon we will soon be making full-stack applications that have their own APIs and have full CRUD functionality.
  • Bit of a tangent here but I’m going to quickly do a bit of a simple introduction to the concept of the “back-end” of a web application using Mumsnet as an example as it took me a while to truly get what people were banging on about when they were talking about front end and back ends (FYI - same as client and server and these terms are used interchangeably). It’s a concept that as a user of the internet you just don’t need to think about but is absolutely fundamental to getting a handle on how websites/apps actually work.
  • There are two basic types of thing needed for Mumsnet chat: users and posts.
  • Both users and posts must be stored somewhere – this somewhere is a database.
  • So very simply, when we talk about the “back-end” of a website we’re talking about code that deals directly with the database or the data itself.
    So now we apply what we learned about CRUD when we were first learning about databases:
  • Users Create themselves by signing up, they can then Create posts and read posts, they can Update themselves by name changing (they cannot Update their posts but in theory they could – this is a slightly quirk of Mumsnet though, no edit button!), they can Delete their accounts and they can (ask MNHQ) to Delete their posts. Those verbs – create, read, update, delete are all database interactions and CRUD functionality is central to how most full-stack applications are designed.
  • Now we come back to the idea of an API – whereas before we were reading third party data from someone else’s database via an API we now have the tools and understanding to be able to create our own database and then to speak to it and to apply CRUD functionality.
  • At this point we will learn about authentication too, how users login to their own account, JSON web tokens, passwords etc.

- Homework/exercise - create a database and the back-end code that will enable you to interact with and query your database. Put anything at all in your database- dog breeds or horror films or even members or your family. You must be able to create, read (list), update and delete through Insomnia (or similar GUI app).
- We can then come back to thinking about the other thing that is a essential component of Mumsnet and that is the bit you see in front of you in the browser– the bit that you (the user) see and interact with so we don’t have to interact with the Mumsnet database of posts and users using http requests via the command line or using Insomnia so that’s the next project, add a front-end to the database and API you have created and hook it all up so that it works together.
- Deploy your application using Heroku or similar.
- Ta dah! You are a full-stack software developer. Job done.

(I think half-way through writing that I switched to "we" as I was imagining I was an instructor doing an intro class so apologies for that...)
OP posts:
Report
OliviaSoprano · 16/12/2020 16:12

Also - two things. That is an extremely rough guide and is by no means exhaustive and I'm sure the learning could be done totally differently and be just as good a preparation. Also, the emphasis here is on learning to code in order to work with web applications. There are many other things that people create using code (types of software if you will!), but this is a good access point, and these skills are all massively in demand.

And - a lot of that will make absolutely no sense if you are a complete beginner, that is fine and normal. Google, google, google and you can find the guides/tutorials/youtube videos that will help you understand the concepts and that will enable you to put it into practice. It will be extremely hard work and require that you take a massive amount of initiative but could be done. I would highly recommend getting involved in some sort of coding community so that you can get some sort of feedback/ guidance too.

OP posts:
Report
Sixorseven · 16/12/2020 20:01

@OliviaSoprano
This is fantastic, you're a star. Thank you for the detailed information and helping make sense of what/when/how. Lots of hard work ahead. It will be satisfying to be able to set smaller goals and slowly tick them off the list. Very exciting.

Report
Fivews · 16/12/2020 20:38

Thank you so much for this post. I work in tech and women are terribly underrepresented.
It's a great career to switch into. Everyone is constantly learning so nice to pick up some basic concepts you'll be off and running in no time.
Good salaries, flexibility and we're in track to be 10,000 techies short in the next 5 years....jobs for anyone with a curious mind.

Report
MamaMoonbeam · 16/12/2020 20:46

Place making! I just started studying for a BSc in cyber security with the OU and suspect any info you share will be useful to me!
😁

Report
RunaroundSuzy · 16/12/2020 21:22

Wow thanks so much for the detailed info. Most of it went way over my head but it's great to have some goals to work towards.

Can I ask did you find you could remember the language/code as you went along or is it the sort of thing you learn but only really get to grips when you're using it day in day out?

Report
Tinseltastix · 17/12/2020 00:17

I had hoped this would be me one day, although I’m 35! I tried learning to code over lockdown, really enjoyed it, sailed through HTML and CSS but then got to JavaScript and just couldn’t get it at all, so gave up on that idea. Back to the drawing board!

Report
OliviaSoprano · 17/12/2020 12:43

RunaroundSuzy

Can I ask did you find you could remember the language/code as you went along or is it the sort of thing you learn but only really get to grips when you're using it day in day out?

I didn't remember or "get" anything at all the first time I covered it when I was in the very early stages (beyond the basics of HTML and CSS). And that's not an exaggeration. I did exercises and read things and none of it made any sense and I didn't understand how it fitted together. All I knew was that I enjoyed doing the exercises and I wanted to get to a point where I could do them without looking at the answers first! So I did those first few tutorials over and over and eventually I would make progress. It didn't magically all fall into place but there would be little "aha!" moments and a gradual drip, drip style of progression that I didn't even notice at the time that was more about familiarity. I still didn't understand a great deal but after a few months of tutorials (by the time I started the bootcamp) I was comfortable. It didn't feel totally baffling anymore. I can't overstate enough, the fact that I really don't think that the "getting it very quickly" is what constitutes an aptitude for this kind of work - it's the enjoying it very quickly and the curiosity to learn more and willingness to persist and not give up when things seem to not make sense or won't work.

So when I read of Tinseltastix's experience, I don't think - oh she didn't get JavaScript on the first try, she's not cut for it. But I do think, if she tried JavaScript, didn't get it and then didn't want to persist or didn't find it interesting enough to want to persist... well, that's a sign it might not be for her! Which is totally fair enough - it's really not for everyone. (Though for all I know, she did persist for months and months and then still didn't get it in which case, also fair enough, it's probably not for her!)

To come back to your exact question, it is only when you are actually coding and using a language frequently that is starts to come really naturally. Just as you wouldn't expect to start speaking fluent French after reading a lot about French grammar.

OP posts:
Report
RunaroundSuzy · 17/12/2020 13:08

@OliviaSoprano thanks- thats what I was hoping you would say. I definitely want to know it and feel I can be persistent with it. However, even with html which I understand, I dont remember it as I'm not using it often. I think I'll sign up to codecademy and start working my way through that to see where it leads. I dont have a degree so was originally planning on going down that route, but now I'm thinking working towards a bootcamp would be an option

Report
JustKeepSw1mming · 19/07/2021 16:42

Hi, I see this is an old thread, but just wanted to say that I am inspired to sign up to code academy to see if I like this!

Report
OliviaSoprano · 22/07/2021 00:05

@JustKeepSw1mming

Hi, I see this is an old thread, but just wanted to say that I am inspired to sign up to code academy to see if I like this!

That is great to hear :) I hope you enjoy it. If you do and want to ask anything more specific down the line feel free to send me a DM.
OP posts:
Report

Don’t want to miss threads like this?

Weekly

Sign up to our weekly round up and get all the best threads sent straight to your inbox!

Log in to update your newsletter preferences.

You've subscribed!

JustKeepSw1mming · 22/07/2021 21:45

Thank you very much, that's very kind. I am starting slowly as I have a very young baby - but I might take you up on your offer Smile

Report
Fere · 29/09/2021 16:27

@OliviaSoprano I PM'ed you but my questions now are slightly different. This thread is very informative and I am in the process of applying and choosing my bootcamp course.

Report
connelly · 21/10/2021 14:03

Is it doable for someone who's very bad at maths to learn to code?

Can you still make money as a web developer or which coding area would you recommend?

Report
Please create an account

To comment on this thread you need to create a Mumsnet account.