From 8149c34f5b67087dd16a735c33507ec531b2845e Mon Sep 17 00:00:00 2001 From: David Johnston Date: Mon, 24 Nov 2025 13:34:57 +1100 Subject: [PATCH 1/4] Advice for someone getting into software engineering. --- ...nting_to_get_into_software_engineering.mdx | 79 +++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 src/routes/posts/advice_for_someone_wanting_to_get_into_software_engineering.mdx diff --git a/src/routes/posts/advice_for_someone_wanting_to_get_into_software_engineering.mdx b/src/routes/posts/advice_for_someone_wanting_to_get_into_software_engineering.mdx new file mode 100644 index 0000000..59dcb56 --- /dev/null +++ b/src/routes/posts/advice_for_someone_wanting_to_get_into_software_engineering.mdx @@ -0,0 +1,79 @@ +--- +meta: + title: Advice for someone looking to get into software engineering + description: This is advice I have someone who is either pivoting career or have finished high school and are looking at university options. + dateCreated: 2025-11-24 + +tags: + - "software_engineering" + +--- + +A friend recently asked for what advice I would have for her son who is considering going to university to study computer science. + +Here's my advice. + +## Being good software engineer requires grit and self directed learning + +This post is going to assume that person wants to become a _good_ software engineer. + +Certainly it's possibly to have a successful career in software without being a good software engineer - having the right showmanship of gift-of-the-gab for example - but I don't feel qualified to advise on that strategy. + +Being a good software engineer involves working things out yourself - that might be: + +- Googling +- Asking LLMs +- Reading documentation +- Asking questions on Stack Overflow +- Asking questions in Github discussions +- Creating minimal reproductions + +_Somebody can't teach you to be a good software engineer_. In my opinion a good software engineer isn't just having the right collection of knowledge, it's having the right _attitude_. (But accumulating that collection of knowledge is also a necessary part of what makes a good software engineer.) + +The point here, is that you can't just go to university, do the courses, and come out as a software engineer. You need to developer those engineering practises - and those are things you can develop _without_ being at university, just by the act of coding. + +Even if you do go to university, you'll still be learning on the job anyway - the job of being a software engineer is learning how to be a software engineer. This isn't a pithy joke - it genuinely is what the job is. + +Granted - having the right mentor, being exposed the the right ideas is going to greatly accelerate your progress - you still need to have that self directed learning - you can't wait for someone to teach you - they won't have the time and people are going to be more inclined to help people they can see helping themselves. + + +## You don't know what you don't know + +Where structured learning, like university or other courses can help, is in providing a syllabus of content that might not have occured to you. + +Say you were to learn purely from google, you might search: + +- "How to become a software engineer" +- "How to write JavaScript" +- "How to deploy a web server" + +And you would encounter tutorials etc, and you would get pretty far with this. + +But there's a whole lot of content that you're not going to think to search - this is where an external source of direction can be helpful. + +### The value of university is not teaching you software engineering - it's in teaching you computer science + +When I was at university I remember chomping at the bit to be writing real applications. + +You have your whole career to do this. Things like code architecture, writing testable code etc, in my opinion, universities are not paritcularly good at teaching anyway - because chances are the lecturer's do not have extensive industry experience! + +Instead what universities are good for, is teaching the more theoreticaly/academic aspects of computing - algorithmic complexity, computer architecture etc. + +This kind of thing is perhaps not so useful when you're trying to learn a JavaScript framework, and just getting the code to _work_ but becomes more relevant several years down the track when you're trying to eek out every bit of performance you can. + +As it relates to university - I think the idea thing would be to be working as a software developer for several years before going to university. I think having already been working as a software engineer is likely to give you a greater appreciation of what you're learning at unversity - and it's also going to make the university work a lot easier - as you're not struggling with basic syntax. + +With that said - the practical reality for a lot of people is that no place is going to hire them as a software engineer straight out of high school - and so going to university is simply the practical step forward. + +## Experience matters + +While it's fair to say that the right attitude and some level of genius is going to mean that somebody with one year of experience might be a more effective software engineer than someone with ten years experience, there definitely is a whole class of programming gotchas that you just need to spend enough time coding to encounter and learn that lesson. + +## Practical advice + +- Don't wait for someone to give you permission to start coding, start now. +- Create a Github account and start coding there. + - If you go to university, save your assignments there. They'll be interesting to look at when you've left university, because chances are you wan't be working on anything similar 'in the real world'. +- Your milliage may vary, but I've personally found that the best way to learn is to have some project I'm working on/have some problem to solve. I've found I struggle with motivation to 'learn for the sake of learning'. + - For example, an early project that I got hooked on was a geometric art generator website. This had me learning how to deploy an application, how to do social integrations, how to use cloud services, etc. + - The hard part is in finding that project. From c32a21a2b80c7916302546be3b3c078c98f6959c Mon Sep 17 00:00:00 2001 From: David Johnston Date: Mon, 24 Nov 2025 13:43:28 +1100 Subject: [PATCH 2/4] Apply suggestions from code review Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- ..._wanting_to_get_into_software_engineering.mdx | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/routes/posts/advice_for_someone_wanting_to_get_into_software_engineering.mdx b/src/routes/posts/advice_for_someone_wanting_to_get_into_software_engineering.mdx index 59dcb56..1bf882f 100644 --- a/src/routes/posts/advice_for_someone_wanting_to_get_into_software_engineering.mdx +++ b/src/routes/posts/advice_for_someone_wanting_to_get_into_software_engineering.mdx @@ -1,7 +1,7 @@ --- meta: title: Advice for someone looking to get into software engineering - description: This is advice I have someone who is either pivoting career or have finished high school and are looking at university options. + description: This is advice I have for someone who is either pivoting career or has finished high school and is looking at university options. dateCreated: 2025-11-24 tags: @@ -25,7 +25,7 @@ Being a good software engineer involves working things out yourself - that might - Asking LLMs - Reading documentation - Asking questions on Stack Overflow -- Asking questions in Github discussions +- Asking questions in GitHub discussions - Creating minimal reproductions _Somebody can't teach you to be a good software engineer_. In my opinion a good software engineer isn't just having the right collection of knowledge, it's having the right _attitude_. (But accumulating that collection of knowledge is also a necessary part of what makes a good software engineer.) @@ -34,12 +34,12 @@ The point here, is that you can't just go to university, do the courses, and com Even if you do go to university, you'll still be learning on the job anyway - the job of being a software engineer is learning how to be a software engineer. This isn't a pithy joke - it genuinely is what the job is. -Granted - having the right mentor, being exposed the the right ideas is going to greatly accelerate your progress - you still need to have that self directed learning - you can't wait for someone to teach you - they won't have the time and people are going to be more inclined to help people they can see helping themselves. +Granted - having the right mentor, being exposed to the right ideas is going to greatly accelerate your progress - you still need to have that self directed learning - you can't wait for someone to teach you - they won't have the time and people are going to be more inclined to help people they can see helping themselves. ## You don't know what you don't know -Where structured learning, like university or other courses can help, is in providing a syllabus of content that might not have occured to you. +Where structured learning, like university or other courses can help, is in providing a syllabus of content that might not have occurred to you. Say you were to learn purely from google, you might search: @@ -55,7 +55,7 @@ But there's a whole lot of content that you're not going to think to search - th When I was at university I remember chomping at the bit to be writing real applications. -You have your whole career to do this. Things like code architecture, writing testable code etc, in my opinion, universities are not paritcularly good at teaching anyway - because chances are the lecturer's do not have extensive industry experience! +You have your whole career to do this. Things like code architecture, writing testable code etc, in my opinion, universities are not particularly good at teaching anyway - because chances are the lecturer's do not have extensive industry experience! Instead what universities are good for, is teaching the more theoreticaly/academic aspects of computing - algorithmic complexity, computer architecture etc. @@ -72,8 +72,8 @@ While it's fair to say that the right attitude and some level of genius is going ## Practical advice - Don't wait for someone to give you permission to start coding, start now. -- Create a Github account and start coding there. - - If you go to university, save your assignments there. They'll be interesting to look at when you've left university, because chances are you wan't be working on anything similar 'in the real world'. -- Your milliage may vary, but I've personally found that the best way to learn is to have some project I'm working on/have some problem to solve. I've found I struggle with motivation to 'learn for the sake of learning'. +- Create a GitHub account and start coding there. + - If you go to university, save your assignments there. They'll be interesting to look at when you've left university, because chances are you won't be working on anything similar 'in the real world'. +- Your mileage may vary, but I've personally found that the best way to learn is to have some project I'm working on/have some problem to solve. I've found I struggle with motivation to 'learn for the sake of learning'. - For example, an early project that I got hooked on was a geometric art generator website. This had me learning how to deploy an application, how to do social integrations, how to use cloud services, etc. - The hard part is in finding that project. From 06f46863834ad2f80200efa8dcf9fd380b7b5341 Mon Sep 17 00:00:00 2001 From: David Johnston Date: Mon, 24 Nov 2025 13:43:44 +1100 Subject: [PATCH 3/4] Apply suggestions from code review Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- ...ice_for_someone_wanting_to_get_into_software_engineering.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/routes/posts/advice_for_someone_wanting_to_get_into_software_engineering.mdx b/src/routes/posts/advice_for_someone_wanting_to_get_into_software_engineering.mdx index 1bf882f..cc2f972 100644 --- a/src/routes/posts/advice_for_someone_wanting_to_get_into_software_engineering.mdx +++ b/src/routes/posts/advice_for_someone_wanting_to_get_into_software_engineering.mdx @@ -13,7 +13,7 @@ A friend recently asked for what advice I would have for her son who is consider Here's my advice. -## Being good software engineer requires grit and self directed learning +## Being a good software engineer requires grit and self directed learning This post is going to assume that person wants to become a _good_ software engineer. From de8b2533951cba8167dd97d9e4fddb158a741682 Mon Sep 17 00:00:00 2001 From: David Johnston Date: Mon, 24 Nov 2025 13:45:55 +1100 Subject: [PATCH 4/4] Typos --- ...r_someone_wanting_to_get_into_software_engineering.mdx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/routes/posts/advice_for_someone_wanting_to_get_into_software_engineering.mdx b/src/routes/posts/advice_for_someone_wanting_to_get_into_software_engineering.mdx index cc2f972..d170135 100644 --- a/src/routes/posts/advice_for_someone_wanting_to_get_into_software_engineering.mdx +++ b/src/routes/posts/advice_for_someone_wanting_to_get_into_software_engineering.mdx @@ -17,7 +17,7 @@ Here's my advice. This post is going to assume that person wants to become a _good_ software engineer. -Certainly it's possibly to have a successful career in software without being a good software engineer - having the right showmanship of gift-of-the-gab for example - but I don't feel qualified to advise on that strategy. +Certainly it's possible to have a successful career in software without being a good software engineer - having the right showmanship or gift-of-the-gab for example - but I don't feel qualified to advise on that strategy. Being a good software engineer involves working things out yourself - that might be: @@ -30,7 +30,7 @@ Being a good software engineer involves working things out yourself - that might _Somebody can't teach you to be a good software engineer_. In my opinion a good software engineer isn't just having the right collection of knowledge, it's having the right _attitude_. (But accumulating that collection of knowledge is also a necessary part of what makes a good software engineer.) -The point here, is that you can't just go to university, do the courses, and come out as a software engineer. You need to developer those engineering practises - and those are things you can develop _without_ being at university, just by the act of coding. +The point here, is that you can't just go to university, do the courses, and come out as a software engineer. You need to develop those engineering practices - and those are things you can develop _without_ being at university, just by the act of coding. Even if you do go to university, you'll still be learning on the job anyway - the job of being a software engineer is learning how to be a software engineer. This isn't a pithy joke - it genuinely is what the job is. @@ -57,11 +57,11 @@ When I was at university I remember chomping at the bit to be writing real appli You have your whole career to do this. Things like code architecture, writing testable code etc, in my opinion, universities are not particularly good at teaching anyway - because chances are the lecturer's do not have extensive industry experience! -Instead what universities are good for, is teaching the more theoreticaly/academic aspects of computing - algorithmic complexity, computer architecture etc. +Instead what universities are good for, is teaching the more theoretical/academic aspects of computing - algorithmic complexity, computer architecture etc. This kind of thing is perhaps not so useful when you're trying to learn a JavaScript framework, and just getting the code to _work_ but becomes more relevant several years down the track when you're trying to eek out every bit of performance you can. -As it relates to university - I think the idea thing would be to be working as a software developer for several years before going to university. I think having already been working as a software engineer is likely to give you a greater appreciation of what you're learning at unversity - and it's also going to make the university work a lot easier - as you're not struggling with basic syntax. +As it relates to university - I think the ideal thing would be to be working as a software developer for several years before going to university. I think having already been working as a software engineer is likely to give you a greater appreciation of what you're learning at university - and it's also going to make the university work a lot easier - as you're not struggling with basic syntax. With that said - the practical reality for a lot of people is that no place is going to hire them as a software engineer straight out of high school - and so going to university is simply the practical step forward.