hark logo

National Coding Week: Hark Software Engineers Advise on Getting Started with Code

Hard working software developers are the very core of Hark, helping bring new functionality, better UI, and constant performance upgrades to The Hark Platform. In honour of National Coding Week, we've put the spotlight on our team, to let them tell their story and share some tips for budding coders!
national coding week image

How did you get into coding?

Rob Pines: My journey into coding was a bit of an odd one, I wasn’t able to figure out what I wanted to do in life after school and college and ended up getting a degree in Archaeology. But during my studies realised that studying archaeology and spending my time excavating holes in the lovely British weather wasn’t for me.

After university, I moved to Leeds with my partner and worked in CEX for a year. Whilst I enjoyed working with the technology and the people, working in retail was my personal idea of hell, and so I began to look for something new. I came across an IT apprenticeship at Asda, the description was vague, but anything seemed better than nothing, so I applied. When they offered me the job, and I joined Asda, I found out I was assigned to the mobile application development team as a software engineer, and I haven’t looked back.

Julian Kay

Julian Kay: I’ve always had a keen interest in science and technology since I was very young, and I used to play with whatever devices I could get my hands on. My real interest probably started with the Acorn Archimedes, a British computer released in the late 1980s, which had a graphical interface which I could customise by manipulating files on a 3.5-inch floppy disk.

Towards the end of the 1990s I had already learned languages like Visual Basic, HTML, and CSS and I left high school looking for businesses which would employ me to follow my passion for computers. By the mid-2000s I was writing .NET code in C# for web services and real-world business applications using JavaScript and HTML and I just kept going from there into Embedded Systems and Online Services.

I experimented with a lot of different computers, and I found that Microsoft Windows gave me the best platform for me to develop my own applications. I’m still just as passionate about using different operating systems and understanding how they work. Every day I use code to get these computers to do what I want!

Andrew Hathaway, CTO @ Hark

Andrew Hathaway: When I was a young teenager, my friends and I used to film skateboarding videos. To share these videos, we started a website as a hobby. This led me to learn how to code and build websites myself.  

After discovering the joy in the creative aspects of my first project, I began to build Windows applications (before I knew that a real computer is a Mac) to make computers operate however I wanted. After making numerous applications, I decided to build another website to share these applications and utilities with others.  

Following this, I kept on making websites and started exploring different programming languages, while also getting into design. I must have rebuilt my online portfolio many times, tinkered with recreating popular website designs, and began freelancing, all before landing my first professional job at an agency at age 16. 

Angus Doherty: I got into Data Science through my background in mathematics. During my time in college and university, I was introduced to tools like Excel, MATLAB, and some basic Python for solving mathematical problems. What really piqued my interest in coding was the power to automate solutions, whether it was solving complex equations or plotting functions with just a press of a button.

My journey into coding was primarily driven by my role as a Data Analyst. I used Excel extensively to create automated reports and conduct basic analysis. However, the limitations became apparent when dealing with large datasets, often leading to workbook crashes and corrupted files. This experience pushed me to explore more robust data analysis tools like Python, Pandas, and SQL.

Do you have any recommendations for how new coders can figure out what to learn?  

Rob Pines: I think it entirely depends on what people want to do, there are a lot of different types of tech out there, and a lot of different things people can get involved in, and all of it requires different skills. Because I started in an apprenticeship, I was told what to learn to begin with, and have found myself learning and improving in that area ever since.

Ultimately, coding takes a lot of mental energy, and I think it’s worth it to spend that energy on something you’re interested in and passionate about.

Julian Kay: Web technologies are always useful, no matter where your career or hobby with coding may take you in the future. Above all, if it feels rewarding then you’re learning the right things. Follow your passion!

Andrew Hathaway: This ultimately depends on what you would like to build. If you’re aiming to build websites, starting with HTML and CSS is essential, even though they’re not technically programming languages. Once you’re comfortable with those, diving into JavaScript will help you add interactivity to your websites and give you a good introduction to how programming languages function.

If you’re interested in building mobile applications for iOS, swift is an excellent programming language to start with. Apple offers a wealth of high-quality courses for learning Swift. You can learn to make user interfaces in Swift UI, and learn logical programming in Swift.

Despite its technical flaws, JavaScript is a relatively easy-going language to learn, and it introduces you to key programming fundamentals like variables, functions, and loops. It’s highly versatile, can be run in the browser, and on the server, and is often used in scripting and automation settings in operating system tools.

Finally, once you learn the fundamentals of one programming language, you’ll find it much easier to learn others – so make a start!

In your opinion, which programming language is the best to learn?  

Rob Pines: I think for web technologies and front end, Javascript is great to learn, and I can speak from experience when I say that it is easy to learn for a beginner.

I also believe that you can learn any language you fancy once you understand the basics. Whilst I might not know C#, Java, Python, etc. I know enough of the basics to be able to read them and understand what code is doing in those languages.

Angus Doherty: For newcomers to coding, the best language to learn depends on your specific interests and goals: if you’re inclined towards data analysis and data science, I highly recommend starting with SQL, Python, and Pandas. SQL is excellent for retrieving data from databases, with a beginner-friendly syntax. Python is widely used for data analysis and machine learning due to its readability. Pandas, a Python library, is great for working with tabular data, which is essential for many data analysis and machine learning tasks.

I also do some mobile development in my spare time, if this interests you Kotlin and Jetpack Compose for Android and Swift and SwiftUI for iOS are beginner-friendly choices to create mobile applications quickly.

Julian Kay: Be curious and learn about the variety of languages out there, but knowledge in HTML, CSS, and JavaScript will go a long way. I’d also suggest learning another popular language like C# or Python – but if you’re actively building things, it doesn’t matter which language you use!

What are the best free courses, channels or accounts for learning to code?  

Rob Pines: I am a full-stack engineer but I am most proficient in front-end development, and as such have a fair amount of front-end resources (free/cheap). 

For a complete beginner, or if you need a refresh on methods and syntax, W3Schools is a great free resource with lots of helpful information for HTML, Javascript, and CSS (and more!). 

In addition, Codecademy is a great website for learning code with projects and quizzes along the way. 

If you’re happy to pay some money, Stephen Grider on Udemy has some amazing courses, that can teach you Javascript or Typescript, and make an application along the way, allowing you to build a portfolio as you learn. (Remember to buy when they’re on sale!). 

For casual learning, I have signed up for some e-newsletters such as Bytes, DEV, and React Digest. In addition, I installed a Chrome extension that provides daily blog posts with tips, news, and opinion pieces called Daily Dev 

Julian Kay: I’m sure I won’t be the only person to say – the internet in general! Using a search engine and websites like StackOverflow you can find out huge amounts of information. Similarly, many languages, SDKs, and frameworks are documented online, most even have their source code available on services like GitHub! Being able to navigate these services is a key skill for learning new things.

Angus Doherty: For Data Science, it’s vital to have a good grasp of maths and statistics. I’d recommend 3Blue1brown for new mathematical concepts. He explains problems incredibly elegantly and uses great visualisations to help you understand things intuitively. For statistics I’d recommend Josh Starmer’s StatQuest – you’ll get used to the cheesy intro music! He has a wide range of videos on many statistical methods and processes used in analysis and machine learning.

For understanding core Python concepts I’d recommend Corey Schafer. His channel has a playlist of beginner-friendly videos, helping you set up your machine for development, and explaining variables, types, loops, and data structures. He also has more advanced content on Pandas, Flask API development, and Object Oriented Programming.

For SQL, Codecademy has an interactive gamified course, that can quickly help you pick up the basics.

Andrew Hathaway: I don’t have anything specific for this one, other than Google is your friend! Professional programmers use Google (and stack overflow) every day to find solutions. So don’t hesitate to make use of these as well!

Searching for online courses is a great idea. YouTube is a free resource that offers a variety of courses, many of which are of high quality. In addition, there are specific pieces of documentation, guides, and how-to’s available. Follow them and learn.

Should those new to coding learn skills in several areas or focus on one area in particular first?

Rob Pines: I think those new to code should focus on one thing at a time, you can learn a language and build something at the same time, but trying to be a jack of all trades will lead to being a master of none.

I recommend getting comfortable with basics, such as loops, if statements, data types, etc. Before trying to master every language at once.

Julian Kay: The main thing to focus on is to either solve real problems or have fun! Personally, I don’t get too much value from aimlessly learning something unless there’s a realistic goal or objective.

Andrew Hathaway: It’s important to focus on one area long enough to truly understand what you’ve learned and how it can be applied elsewhere. However, if you’re not enjoying it and think you might enjoy something else – give it a go. You can always come back to it.

Angus Doherty: I recommend starting with the basics, such as variables, loops, and data types. Afterwards, take on a specific challenge, like creating plots from a dataset, building a simple calculator, or developing a noughts and crosses game. Much of programming involves independent research and problem-solving, and you’ll learn a lot by tackling real-world tasks.

Do you have any advice for those who might be considering a career as a programmer?

Rob Pines: My advice to people looking to start, is to just start. Find what you want to do, and get learning, don’t be afraid to fail or reach out for help.

Google is also your best friend, if you can’t figure out why something isn’t working, even when following instructions, Google is right there, and it’s free!

I also recommend finding a community you can reach out to help, either in your local area via Meetup or on Discord. Networking is also a huge part of the process if you want this to be your career, having a good network of engineers, and people in tech, can really help you land your first job, and any jobs after that.

Bootcamps and apprenticeships are also great routes into the career, but the bootcamps are also high in demand, and pump out a lot of junior developers with the same skills at regular intervals, making it difficult to find the career you want when you’re finished.

Julian Kay: Whether you’re programming for a career or a hobby my advice would be to be curious and feed that curiosity with the software and information available to you in a way that you enjoy and find challenging.

Andrew Hathaway: The key is to make a start, whatever it is – find a way! Depending on what it is you’d like to make, find a way to begin learning and get involved in that space. If you have a computer, there are many options on what you can do. If you have a phone or tablet, there are a number of apps and resources to play around with to learn.

Although it can be hard to find time to take on the (fun) challenge of learning how to code, it is also very rewarding! Don’t put too much pressure on yourself, and whether it’s reading to learn or typing letters on a keyboard, go for it!

Find a community. Something that was important for me when I was younger was the community of people I had around me, whether it was in Leeds or online on Twitter (rip). We were all making something, designing, sharing progress and tips, or learnings. It was great to keep the knowledge coming and helped find people to collaborate and make fun projects with.

Once you start feeling comfortable with the fundamentals and capable of applying them to your own projects confidently, search for your first job as a software engineer. Be open, honest and eager to learn. If you find the right company that is willing to hire a junior engineer, take the opportunity, you’ll learn a lot and start to build confidence as an engineer. Being part of a team can teach you a tonne about software.

Angus Doherty: For those considering a career in programming, my advice is simple: dive in and start experimenting with a new language and basic tutorials. It’s easy to feel overwhelmed by the multitude of languages and frameworks available, but the key is to start somewhere. Most of the knowledge you gain will be transferable, allowing you to transition between different technologies once you grasp the core concepts.

How did you build your confidence as a coder? 

Rob Pines: Some part of me does wonder if having low confidence and imposter syndrome is one of the main parts of being a developer, however, I have grown in confidence massively since beginning my career in development. 

A lot of this is due to the growth of my skills over time and showing myself that I have the abilities I need to do my job. This helped me be able to tackle problems independently and figure out the solution for myself.  

But a lot of people I have worked with in tech have been incredibly supportive, and really help to hype you up, even with the small wins.  

Earlier in my career I also signed up to become a stem ambassador, this allowed me to talk with students and parents about working in technology. Part of my goal in doing this was to help introduce younger girls and women to the idea of working in software development. As I don’t think it was an obvious option when I was in school, and there were no real female techy role models in my environment.  
 
This has helped to really boost my confidence in myself, as when you have to talk about what you do publicly, and to a large group of people, there’s not really any room to not feel confident in yourself. 

Julian Kay: As with anything, you’ve got to show up and keep doing it!

Andrew Hathaway: I’ve always said that continuing to make things is key early on. Keep building. If you’re interested in making websites, find a website that interests you and recreate it (for your learning only! ). Learn how to make it pixel perfect, and when you’re done, find another! Keep building!

This same approach can apply to software engineering in general – find a problem and create a solution. Over time, you’ll learn a wide range of topics, from apis to programming language fundamentals and beyond. You’ll be able to apply this knowledge moving forward!

Angus Doherty: Building confidence as a coder is about embracing the feeling of not knowing everything. The field of development evolves rapidly, and it’s impossible to keep up with every new framework or tool. Be comfortable with not knowing everything and resist imposter syndrome. Sharing your work and seeking constructive feedback through platforms like Reddit or Discord can also boost your confidence and skills.

Do you think there are any character traits that make a great coder?

Rob Pines: I think every skill for coding can be learnt, knowing the language, solving problems, researching, and communicating with others are all important skills to coding.

But in terms of actual traits, I think the most important thing is to enjoy all of those things and to have the drive to do them. Problem solving is a massive part of coding, but if you don’t enjoy doing it, you’re going to be unenthusiastic about coding, and not be the best.

Equally, coding isn’t the anti-social, sat-in-the-dark, hacker-man activity that it has the reputation of being, it’s a very social activity/job, and so building your written and spoken communication skills is a must.

Julian Kay: Curiosity about technology will get you into computers, but if you want to be great then you must understand people too. Most Software Engineering and related roles are actually about communicating with people rather than communicating with the computer.

Andrew Hathaway: Great engineers understand that software development, whether undertaken individually or part of a team, is 90% people, and 10% engineering. The numbers are fairly random, and aren’t strictly important here, but more to stress the significant role that people play in software engineering.

As software engineers, we write code to create software that people use. This might involve designing an interactive user interface aimed at making the user experience as delightful as possible, helping users accomplish their tasks in the best way. It might also involve creating apis that enable other engineers to build great software on top of yours. Hell, the other engineer could be you, returning to code you wrote a year ago – you need to make sure it’s readable, concise and easy to adapt and maintain.

Furthermore, working in a team highlights the critical role that people play in a group of software engineers. People are the driving force behind software development, and the way your team operates, learns, and improves is key to the field of software engineering as a whole.

As a software engineer, possessing both the attitude and aptitude for learning is crucial. Embrace a mindset of continuous learning. Be open to collaborating with others, whether it involves teaching or learning from them. Push to make great software, and show genuine care in your work.

Angus Doherty: In terms of character traits, effective communication is crucial for a coder. It’s easy to think the perfect coder is churning out thousands of lines of code and doing everything solo, but reality is far from that. Collaboration is a significant part of the development process, so being able to communicate clearly and concisely with team members and stakeholders is vital. Self-motivation

is another key trait, as coding often involves tackling complex problems that require persistence and determination.

Is coding at Hark different to other places?

Rob Pines: The actual coding at Hark is the same as other places I’ve been, but it’s the culture at Hark and the approach to the job that’s vastly different.

At my first job, Asda, I had a lot of independence in building features and coding, but very little support. Whereas in my second job, I had a lot of support, but no independence.

I’ve not been at Hark long, but so far, I’m enjoying the balance between independence and support. The work has been fun and engaging, and people are happy to answer questions and jump on a call to talk things through when I need them.

Julian Kay: It’s always about people! Who you work with and how you collaborate together shapes the software development experience.

Andrew Hathaway: I’d like to hope that many places function in a similar fashion to hark, as we have strong feelings about how software should be built and how software engineering teams should operate – especially as a company founded by three software engineers! However, we do know that not all companies operate software engineering teams effectively, and it’s a shame to hear about the challenges some engineers face.

The culture at Hark is extremely important to us. We encourage collaboration, invite feedback, and welcome difficult discussions. We aim to do outstanding work, operate effectively as a team and support each other in learning and moving forward. We’re always improving, and doing good by default. We’re honest, open, and solve problems as a team. We care.

This culture is pervasive in our business, even within our software engineering teams at Hark.

From a purely technical standpoint, we face engaging challenges in handling massive influxes of data to the Hark Platform. Additionally, we interact with a diverse range of customer assets, each operating differently and with their own nuances. There’s never a dull moment.

Angus Doherty: At Hark, one of the notable differences is the supportive culture. Colleagues are always willing to help with problems, and teams focus on finding optimal solutions rather than sticking to traditional approaches. The company emphasizes continuous improvement in working methods and tackling many interesting challenges to improve the way the world performs. It’s a great environment to grow personally and professionally!

Interested in a coding career at Hark? Visit harksys.com/about/careers for more information and to view our current job role vacancies.

Related Content

Welcome to The Age of The Smart Store

No cash, no cards – no tills? If you took this news to the middle ages, they’d have burned you at the stake. But here in the outrageous present tense, all is normal (well, kind of).

Read More

Would you like to find out more about the Hark Platform?

Subscribe to Our Newsletter

Stay up to date with the latest industry news, platform developments and more.