I realise it has been a while since I last uploaded to my blog, but I reassure it’s been because I’ve been busy! Rather than bore you with a ton of posts regarding minor things that probably don’t interest you all that much, allow me to give you a brief synopsis of what’s been going on!
I started graduate school! I moved back to Aberystwyth to start an MSc course in Computer Science, with a focus in Software Engineering. I decided to opt for different modules than those I elaborated about in a previous bit of writing – instead opting for areas that I had not previously explored, namely machine learning and artificial intelligence, and statistics and R programming; rather than those I would be already comfortable in. After all, that’s what uni is all about.
I’m currently working as a contractor for a company based in Essex. More information on that soon.
I’ve been hitting the gym and eating well like promised.
I’ve decided to scrap the GoFundMe campaign since I’m in a far better financial state than before and I’m getting on just fine.
That about wraps it up here! So what am I doing on this blog? Well I’ve got plenty of good news on that front. I’ve got some more technical writing coming soon that aims to improve general interest in my blog, I got a small piece regarding health and how water really is changing how I work and indeed live, and a piece about an upcoming conference.
Stay tuned, and thanks for your patience! Follow me on Twitter @notoliverearl (@Rejuvenescencia, my previous handle, is now the name of an upcoming project.) for more updates and musings!
In this second issue of Thought-Provoking Reads for Developers, I share some of the most interesting reads that I’ve stumbled upon across the Internet, made it into my Pocket reading list, and I felt were good enough to amalgamate and provide a brief synopsis on! I try to release one of these every couple of weeks, if not every other week, depending on my reading flow! As previously mentioned, I try not to include specific technology specific pieces (e.g. an article talking about a programming language, framework, or methodology), but rather material that you might not have gone out of your way to research or otherwise read.
I especially want to send well wishes to Baltic apprentices reading my works during #NationalCodingWeek here in the UK! As a former Baltic apprentice myself, I can’t emphasise enough how great of an opportunity you have ahead of you, and I would strongly encourage you to take on as much as you can (without burning yourself out of course!), learn as much as you can, and work as hard as you can! You really will get out what you put in, and I have no doubt that your apprenticeship will provide a springboard for you to leap head first into a great career within your company, a career within your industry, or like me, into higher education if that’s what you want to pursue! I’d love to hear from you on the Baltic Alumni Facebook page.
This is a really fantastic piece by Ali Spittel who teaches programming full-time. If you’re just getting started as a programmer, or are looking to get started, you can’t go wrong with her advice. The most important lesson you can take away from this article is the importance of being willing to learn, and to keep on learning. It’s something that we never stop doing! Furthermore, while there is a ton of advice that will help you as you start writing code, there’s also a wealth of advice specifically aimed at you as you develop as a, well, developer!
There’s 25 points in total (number 16 is my personal favourite!), and I guarantee you’ll go away from it having learned something new, even if you consider yourself experienced! I find from my own experience there always fundamentals we can brush up upon, or new viewpoints that we can incorporate into our own thinking! Just remember, programming is awesome!
I like being busy. A lot of people like being busy, and a whole lot of us spend a great deal of time humble-bragging about how busy we are, with all our various undertakings and work and what have you. I do this too, although it’s not a habit I’m proud of. A lot of research available on the Internet focuses on the negative aspects of multitasking and of course the very real risk of burning out, but did you know that there are perks of being busy? People who view themselves as more important as a result of having a ‘busy mindset’ are more likely to make more positive choices, such as adopting healthier eating habits. Now there’s something we can all benefit from!
This great psychological article in the Harvard Business Review comes from academics Amitava Chattopadhyay, Monica Wadhwa, and Jeehye Christine Kim, and I highly recommend you give it a read, even though it’s not specifically aimed at software engineers; we do often lead busy lifestyles and it can’t hurt to feel a little less guilty that being so busy isn’t without its upsides.
I spoke with the author, Justin Travis Waith-Mair, a few weeks ago on Twitter when myself and other freeCodeCamp users encouraged him to write about his story after he revealed that he had made the brave transition from a career in finance over to software engineering following being let go.
This is an insightful read that goes to show that you don’t need a CS degree or mountain of internships to start work in software. What’s most important is your willingness to learn, to persevere in the face of rejection, and to be willing to produce a portfolio of work, such as through the FCC curriculum, that demonstrates your passion for the field and what you have learned to do! Don’t be afraid, just get started!
This is a similar story written by Austin Tackaberry bringing in the themes of learning and switching careers, particularly how he made full use of learning materials online to get where he wanted to be. Each month is clearly structured with objectives and of course what resources he leveraged. It’s truly phenomenal that with the right motivation and learning materials what you can accomplish, such as an entire career transition, in just a short space of time. (Some people genuinely don’t think it can be done, and they are wrong!)
What was his overall aim? Landing a software engineering job within a year making at least the same amount of money as from his previous job. If you’re wondering what learning resources you should learn from that as demonstrated in Austin’s story are proven to translate to real-world results, this is definitely a read for you.
Now for something a little different! Is 42 really the meaning of life? For one academic hailing from India, it certainly was. He didn’t get 20 degrees from 42 universities as the title might allege, but rather he sat 42 university level examinations in the course of his academic career. Never ceasing to learn is an important trait across many career paths, and is a lifelong philosophy that I strongly recommend – not that I recommend you go out and get 20 degrees though! Just think of all that debt!
If we can learn anything from Dr. Jichkar, it’s that you should embrace learning and pursue it no matter what path you go down, and whether you do that in a university, in a library, or at work, is entirely up to you! He was a truly great mind versed in a range of different fields that truly demonstrates that there is no limit to how much you can learn as long as it continues to fascinate you! Unfortunately, Dr. Jichkar died at the onset of his fifties in a traffic accident.
My apologies for the delays in getting out this issue, but as I mentioned on my blog yesterday, I’ve just been busy! I’m currently in the process of reading more and more material that I am looking forward to sharing with you in the third edition of Thought-Provoking Reads for Developers. Of course, if you find this useful, I would really appreciate it if you gave this a share on social media! Your feedback definitely provides me incentive to keep writing. In addition, if you’re an author and you would like me to feature your work as you think it would be helpful, drop me a tweet or an email and I’ll be more than happy to give it a read! Please stay tuned on my blog for more writing regarding software engineering, volunteerism, mental health, and tidbits from my everyday life. Thank you so much for reading and I hope to find you in the comments below!
Fire, fire! To whom it may concern. Fire! Yours sincerely, Oliver.
Sorry about the brief intermission, I’ve just been incredibly busy. If you’re following me on Twitter, you can keep track of what I’m generally up to and get information about when upcoming posts are on their way, both here and for other publishing mediums!
So what have I been busy doing? Well it’s the start of the academic year, so Nightline branches from all over the UK and Ireland are spinning their cogs once more to provide a very important confidential listening and information service to university students. As a volunteer for the IT Department, myself and members of my team have had our hands full in dealing with a torrent of increasingly urgent support requests, both internal and external. So that’s that!
Additionally, as previously mentioned, I start my postgraduate degree this Friday, or rather I move back to Aberystwyth this Friday. There’s been a lot of preparation and shopping required for that too.
Is there any good news? You bet! The mountain of work has gradually decayed into something far more manageable, and I’m pleased to announce that the second edition of my Thought-Provoking Reads for Developers series will be published today! I hope you hang around and let me know what you think! I’m also writing an interesting little nugget about procrastination. I promise you I’m not procrastinating from it!
As a software engineer myself, I spent a lot of time learning because that’s just a natural part of the job. It’s something that is part of what we do and an integral part of the industry. We’re always learning from each other, from materials published online or perhaps on paper, and there are always little gems out there that you hope will positively impact others the way that they have impacted you. That’s definitely the case with the webpages that I am sharing with you today!
The first item I want to share with you is an article from the freeCodeCamp Medium platform written by Alexander Petkov earlier this year.
If like me you have ever suffered with Imposter Syndrome, or have found yourself face-to-face with continuous uphill battles and struggles when programming, perhaps on your own projects, a coursework project, or perhaps something assigned to you in a junior job or internship and consequently became significantly discouraged, then this article is fro you. Alexander really drives it home that you don’t need to love programming to be a programmer and that a willingness to improve and patiently get better over time is ultimately the key to success. He also goes on to talk about that it’s important not to get overwhelmed in the face of a million and one things you feel like you need to learn (something I still face on continuous basis!) and how to approach these feelings.
On a personal note, I really wish this had been published several years earlier for it to be read by myself as I was preparing to embark on my internship.
This is a great piece by Peter Norvig, with a ton of academic research behind it, and is available in a range of different languages.
Why exactly are people in such a rush to learn programming, or any given programming language, framework, or paradigm? Realistically, this just isn’t feasible – it takes a great deal more time and effort to learn something effectively, and surely in such a short timeframe one might only develop a somewhat familiarity to a subject. Mastering something and becoming a programmer requires interest and active work, as discussed by Peter’s recipe for success, and just remember that these approaches to learning affect all topics. It doesn’t matter whether you’re drawing, playing chess, or learning how to be a parent, books and reading will only help you so much if you’re not rushing; you gotta get your hands dirty. I’ve also come away from reading this with a new favourite quotation:
Computer science education cannot make anybody an expert programmer any more than studying brushes and pigment can make somebody an expert painter – Eric Raymond
This one is kind of cheating, because it follows on immediately from the last one. If you were clicking on the links in the last article you might have seen it already, but it’s a great little comic from Abtruse Goose, and actually might be the only way to learn C++ in 21 days. At least that I know of.
The mother of all articles on this post. It was only published last week by Kamran Ahmed; you might already be familiar with his developer roadmaps on GitHub.
This is a different one, as it is in fact a discussion on Stack Overflow, rather than an article. The initial question proposed is an interesting one, following the story of a junior developer who is having a considerable amount of difficulty and is ultimately questioning whether they are set out for this career. It’s quite apparant that the symptoms of Imposter Syndrome are sinking in, and the fear of not being able to progress or being forced to change career paths is daunting them.
The good news is, that while you can be naturally talented as a programmer, if you lack that inherent talent, that’s still okay, and you can still be a great programmer. It just takes more practice. The top two answers are good reads and are reassuring. Yes it’s possible not to be cut out for programming altogether, but since you’re willing to learn and willing to reach out for help, that most likely isn’t the case.
As I continue to read articles and information across the Internet, I’ll be sharing them on my blog with a summary of each! Reading isn’t the end all and be all, but it’s a great way to learn and to assimilate the mindsets and philosophies of other great minds across the industry and beyond. I try to share anything juicy that I find also on social media, so I would absolutely recommend following me there (Twitter; Minds) if you’re new here and are looking for some extra programming goodness in your news feed! Thank you for reading, and I encourage you to leave a comment below! Until next time.
For a while, I’ve been involved in a small community of web developers, web designers, and an assortment of other digital professionals in an online community known as Spak.co, masterminded by Floridian UI/UX developer Benjamin Spak. The community aims to be career-focused, and provides the perfect environment to share resources, opportunities, and advice with other like-minded professionals, and junior developers who are still finding their feet. Recently I’ve had the privilege of joining some of the more senior members as a squad member, and will be getting increasingly involved as the project grows. It’s all incredibly exciting, and there’s no better way of learning than simultaneously teaching others.
A major component of the community is the #301DaysOfCode hashtag, a superset, if you will, of the popular #100DaysOfCode project popularised by freeCodeCamp. Getting junior developers and recent graduates coding for at least an hour a day for the duration prescribed, and tweeting (and maybe even blogging about) using the hashtag about what they did and what they’ve learned, and perhaps even a link to a repository or something akin to CodePen to show off to the community, is a fantastic way of building portfolios and improving employability. It’s no secret that employers want to see what you’ve done.
I’ve spoken about it a lot on this blog so far; about my desire to build a strong portfolio myself by the end of the academic year to impress potential employers with. With all the learning I have planned this year, I might very well be embarking on a coding challenge such as these myself, so that I can additionally showcase my progress and commitment to continuous professional development. So should you, regardless of your field. In the meantime, I’m going to continue motivating others to better improve their skill set, sharing helpful resources on social media and of course in our growing Spak.co community.
If you want to get involved, install Discord if you don’t already have it and jump straight into our community chatroom by using this helpful link: https://spak.chat – we look forward to welcoming you!
P.S. My screen name is Rejuvenescencia. You know, my Twitter and Minds handle. Say Ollie sent you anyway, and I’ll see you aboard.
I wrote a small opinion piece over on the Minds platform – a bit of background information on Valve’s efforts to making running Windows games and applications as seamless as possible on Windows, what it means for Windows as the predominant PC gaming system, and my own two cents.
Just a quick post to talk about what has been done this week, as it has been 8 or so days since I launched my GoFundMe campaign to help keep my finances secure whilst studying my Master’s. I keep track of my obligations towards GoFundMe sponsoring in a spreadsheet, ensuring that I fulfil my content creation quotas and what have you. There’ll be a weekly summary like this each week (I realise this one is a little late; I only just got the idea!) just to keep everybody informed, and for my own sanity. Here’s the summary for week 1:
I plan on getting out articles on both Minds and LinkedIn before the end of the month – currently working on the one, and brainstorming the other.
If you’re not already following my Instagram account for my pugs, you should absolutely give it a follow! Find them at @tobyandtoffee, as well as on Twitter.
(If you haven’t read the first or second chapters of this post trilogy regarding my goals for this academic year, I highly suggest you do so!)
Imposter Syndrome is a well-documented issue, and it is widely acknowledged to affect software engineers quite predominantly. When a lot of what you do involves copying solutions seen on Stack Overflow, or utilising already made frameworks and libraries to power your own solutions, it can be easy to feel like a fraud. For me, it is an issue that I’ve struggled to deal with since around my second (sophomore) year at Aberystwyth University.
Being surrounded by people you perceive as far more intelligent, motivated, naturally enthusiastic, or gifted than you can make you question your own success. I found myself wondering how on Earth did I get the results I did, and how I was going to hope to stand out amongst them when they were just that better than I. I tried to remedy this by branching out to other paths and making my skill set and experiences more diverse, rather than attempting to directly compete with my classmates in programming ability, since I felt as though I’d never catch up.
This did some great things for me; I nurtured a new found love for work in mental health volunteerism and student welfare, which helped me develop a wide range of strong soft skills and awards for public contributions. Great things honestly, and I would recommend these sorts of undertakings to those genuinely interested in making a difference in a heartbeat. The problem though, is it left me trailing further behind in software and my confidence as a programmer (as explored in my write-up about MSc Psychology) took a bit of a hit.
When I managed to secure a place at Amadeus Germany for my industrial year internship, I felt like the planets had once again realigned and shifted the natural order back into my favour. I was absolutely thrilled to be joining such a wonderful international company that I would later find to be full of some of the most motivated and bright minds I had ever met. My internship was prematurely concluded six months in (half way) due to mental health issues exacerbated by numerous factors, one of which was severe Imposter Syndrome. I was surrounded by incredible people, especially my own classmates from Aberystwyth, and that far into my internship I felt as though I just had nothing to show for it. It made me feel like a failure. I had somehow cheated and lucked my way into a position for an international corporation and whatever code I could hope to write just wasn’t good enough.
I know now, that that wasn’t the case. I was doing just fine and I was growing just fine in ability at Amadeus, but to the mind of someone hopelessly unhappy and being choked out slowly by the abyss that is major depression and living alone in a dingy underground apartment, I obviously couldn’t realise this. By the time I returned to England, made a full recovery, and had written my Industrial Year Report, a long report written in German detailing my experiences and what I learned, it all became apparent. I truly hope to remain on good terms with my former colleagues over at Amadeus, because they’re incredible, and it’s a workplace I would return to without hesitation.
Fast forward to my final undergraduate year, I was plagued with feeling like an imposter throughout, and it wasn’t until I embarked on my final project (dissertation) that this was eventually overcome. Especially was the case when the results came in. I finally wrote something that I was proud of and felt as though my hard work had paid off.
How do I hope to maintain this positive mentality? I have a three-step approach (everything comes in threes on this blog doesn’t it?) that I am hoping to use to leapfrog into industry following my graduation with absolute momentum:
Keep learning. A good software engineer is one that is continuously learning, so if I keep learning new things and expanding my skill set and knowledge, I know that I’m giving my best.
Don’t compare myself to others. What other people are getting up to is interesting and a great reference for my own learning and development, but ultimately, it is only my own professional development I should care about. Observe, praise, and assimilate. Don’t judge. Embrace kaizen.
Maintain open dialogue. Something that I have learned from my experiences as a mental health volunteer is the importance on talking with others. I am not the only person going through what I am going through. Share my experiences with others, and learn from theirs.
That concludes this trilogy of blog posts regarding what I am planning on doing for this academic year! I hope that it has been an enjoyable read for you as it was for me writing it, and I look forward to my continued publishing of personal anecdotes and editorials here on my website. It’s part of my own professional development (and personal enjoyment) to be more proactive online, as well as part of my commitments towards those supporting me over on GoFundMe. Stay tuned for more weekly content (minimum two posts per week), and I’d love to see your views and musings in the comment section.
Just a quick intermission post, a larger blog post-esque update will be coming out tonight talking about what I’ve been up to, and the third part of the MSc trilogy. I’ve just been a little preoccupied with real life, but I aim to get back on track with my writing today.
I’m taking a break out of the big trilogy to talk about what modules I’m taking this year and my thoughts behind them. Some thoughts also behind the whole postgraduate academic year too. Think of this as more of a traditional blog post than any sort of editorial or interesting life piece.
The degree scheme I’m studying this year at Aberystwyth University is G493 Computer Science (Software Engineering). It’s absolutely a CS degree, but the primary focus is software engineering, or CS in relation to software engineering, but there’s plenty of CS stuff in there too by the seems of things.
Postgraduate years are split into trimesters, and they’re all set to be pretty darn busy. I’m not going to bore you with the details of what modules are available since that’s present on the module webpage, so I’ll go over what I’ve chosen and why, and why I didn’t chose the alternatives.
First module I’m undertaking is CSM2120 – The Object-Oriented Paradigm. It’s graded by a medium-sized study analysis and three practical assignments of a Java nature that include analysis and design. Design patterns, and object-oriented analysis are, from what I can tell, still important parts of the software development lifecycle, and are relevant to software engineers of all pathways. Definitely one worth taking, even if my Java needs some sharpening.
The next module I’m enrolling in is CHM5720 – Internet Technologies. I was a little unsure of this one at first – it largely covers Internet protocols like TCP/IP and its varying underlying layers, including the physical aspects of things. There’s all knowledge here that can be applied though to web development and I personally believe it’ll be interesting. It’s graded through a two hour exam and a 2000 word essay, so it should be okay.
Last module is CSM3120 – Modelling, Managing and Securing Data. Data modelling, relational algebra, databases, cryptography, and security are all really important, so another exceptionally useful module. It’ll be tough though, as I struggled a bit in its younger cousin that I enrolled in during my second year. This one is graded on a larger 4000 word report on security issues and a two hour exam.
The other options were a module with an artificial intelligence (AI) focus which while interesting looks difficult and doesn’t interest me as much as the others, and the other was a stats module, which was ruled out immediately.
This is where things pick up the pace. It starts with CHM1320 Advanced Software Engineering, which focuses a lot on the field itself, current issues, and related research. There is a grade for participation, along with a conference poster and 6000 word paper, so that’ll be fun. Judging by the course delivery statistics, there will be a far higher ratio of independent learning in this module than any previously encountered.
Now the meat and potatoes. In my second year of university, I did a group project module. We built task management software that was split into three components – a server module, a Java desktop application, and a web-based component. We also had to make use of the traditional Waterfall software development model. I was specifically responsible for the web-based component, built in PHP and jQuery, and it was called TaskerMAN. I’ll re-build it at some point in the year when I’m doing up my portfolio – perhaps using frameworks. My point is, is that the group project was a nightmare, and many of my peers will agree with me.
But alas, here’s another group project. Another group project, aptly named CSM2020 – Agile Software Development Project. This time, it’ll be using agile methodologies, which does make things a lot easier and a lot less bureaucratic. But a group project is still a group project. Let’s pray it goes well. It’s marked 70% from the project itself and its deliverables, and 30% from a presentation of said project.
Finally, I’ll be simultaneously working on CSM2220 – Mobile Solutions. This is much more focused on mobile development and the implications. 60% comes from three programming assignments worth 20% each, and a 40% case study of 2000 words.
The only other alternative options to the last module I discussed just now were another AI module, and a data mining module that is more bioinformatics focused and doesn’t interest me too much.
Master’s thesis. Dissertation. Yep, this one. The nightmares and flashbacks of my Bachelor’s thesis, and I get to do it all over again at Nightmare difficulty. I assume I get to find out about any available research projects during my second trimester, or whether I’ll have to come up with one of my own and find a suitable supervisor.
Despite all this, I can’t wait to go back. I’ve sworn off a lot of my extracurricular activities and voluntary undertakings that underpined my time as an undergraduate, focusing instead on my studies, and on my part-time teaching job, which basically means even more programming and computer science in my own time. Then the gym and kickboxing, and then even more study, and then chores, and you get the picture.