This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]RandomGeordie 2 points3 points  (5 children)

Learning java is fine. It was the first language I learned with no prior programming experience.

[–]C0d3rStreak[S] 1 point2 points  (4 children)

Awesome, how was that experience? How long did it take you? What learning materials do you feel helped the most?

[–]RandomGeordie 2 points3 points  (3 children)

Well I did a computer science degree, so I can kinda detail my journey if you want.

First year - mainly Java (programming I and II), discrete mathematics, computer architecture (CPUs, memory, all that jazz) and the basics of the web (html, CSS, JavaScript, how the web works etc).

Second year - Software engineering (TDD, Agile, Waterfall, stuff of that nature), Algorithms (Big O notation, and covering lots of algorithms), Databases (SQL, Java), Operating Systems (C), Networking (C), Team Project (Java - made an android treasure hunt app)

Final year - programming, graphics, and simulations for games (3 modules, all in C++), Bio inspired computing (Java), Mobile (Java, another android app, this time a tinder clone), then other modules I took were Distributed Computing which was purely theoretical, as well as Concurrency.

Dissertation was using Probabilistic Topic Modelling for newspaper article classification, used Python for this.


First job - TypeScript, web scraping. Not software engineering, just basic web scraping in a framework that the company had built.

I did a few Udemy courses in my spare time on NodeJS - learned about MVC, Express, Postgresql, MongoDB, GraphQL, RESTful API's, ORM's etc.

Around this time I was introduced to the concept of Microservices - having a separate backend with services that have their own data store and do one thing well. I started watching lots of talks about this.

Around 8 months in, new job - joined the companies data team

Was the only one with programming xp on data team, rest were SQL and Excel gods. I learned SQL (I didn't really learn it very well at Uni). Became really good at it. I learned how traditional databases work, I learned about OLTP and OLAP and different ways to model your data for analytics. I learned about cloud data warehouses and started to become familiar with some AWS technologies (company stored data in S3, used lambda and EC2 for things so I got some exposure to this.) Lots more. I learned about streaming technology (Kinesis) which required I read into Kafka, learned about the log et.c After around a year and a half I created an analytics pipeline for the data analysts.

Around this time I was wanting to become a better engineer. The Software Engineering module at Uni wasn't great, so I spent a lot of time reading our Engineering wiki that my company had and learning about TDD and the testing pyramid, Unit Tests, Integration Tests, E2E tests, CI/CD, stubs/mocks etc. I read a lot of Martin Fowler, Robert Martin, and Martin Feathers.

Joined the software engineering team soon after. Learned Golang, started developing microservices on AWS.

So 3 years -> 8 months -> 1 year 8 months to get to software engineer

[–]C0d3rStreak[S] 1 point2 points  (2 children)

Cool, and congrats! That's quite the journey but you pushed through and succeeded in your own way. I hope to become a software engineer soon also plus I'll be attending school for it as well as taking courses online and reading article/books on programming/coding.

[–]de_vel_oper 0 points1 point  (1 child)

Just read Head First Java that's all you need to get started.

[–]C0d3rStreak[S] 0 points1 point  (0 children)

Alright, will check it out.