Which certifications/next steps for a junior QA engineer?

Hi everyone,

I graduated from a programming bootcamp (freeCodeCamp definitely helped me a lot, I got a scholarship for a bootcamp and had to pay only 20% of the fees, so thank you for that :slight_smile: ) and became a junior “software engineer in test” (that’s my job title). Here are my goals:

  • I’d like to have in depth knowledge about programming in general
  • Have more knowledge about design patterns
  • Learn about things like multi-threading
  • When to use which data-type in case of dealing with very large volumes
  • How to query data efficiently in SQL

I like fCC’s approach, completing small challenged into getting a certification is exciting, but does it make sense according to my goals? I don’t consider myself a good JS programmer, and the knowledge I have is actually more than enough for what is needed at work.

Currently, I am tempted to finish “Javascript Algorithms And Data Structures Certification” and after that start “Apis And Microservices Certification”. If am correct, that would cover only my first bullet point in this list, do you know how I could tackle the rest?

Thank you for your help

EDIT I gave my advice for a junior dev, not a junior QA engineer, but titles are titles, you asked about “developer” questions, so I assume you plan on becoming a software engineer/ developer down the line :slight_smile:

The first point should be kinda-sorta covered by doing FCC’s Javascript Algorithms and Data structures section, but you probably should checkout external resources, such as MDN for more broad coverage of JS.

There is one “go-to” reference for design patterns. It is old, but the patterns still apply today. The best way to really learn them is to implement them in a programming setting, so its not just “concepts”.

Learn about things like multi-threading

You will need to probably learn a new language to learn this subject, as JS is single threaded. If you are really interested about this topic and what it means for JS, and other langauges then go ahead and dive into any other general programming language you’d like to learn aswell. Otherwise, just understand JS is single threaded, which means don’t block the event loop.

When to use which data-type in case of dealing with very large volumes

Not sure what you mean by this question. If we are talking about JS, and actual large amounts of data, the data-type your dealing with is kind of an after thought, streams come to mind as a way to handle large amounts of data without taking up all your ram, but idk if you’d call this a “data-type”.

How to query data efficiently in SQL

The best way to learn SQL is to learn database design, and the syntax to get the data you want/need. You can always query around a well designed database without much trouble, but if its designed inefficiently, or straight up wrong, you will probably have more trouble. Just don’t get the concepts mixed up with the syntax, each database management software (MYSQL, MSSQL, etc) has their own quirks, but the database design concepts are always the same.

If you plan on going full-stack, then building a full-stack app is a good idea to cover lots of areas you may want to learn, strengthen you “general” JS skills, and learn the different levels of tech you will end up using as a full stack dev.

If your going to focus on the client-side, then I’d say general programming and design patterns are the most important (out of what you brought up) to focus on.

If your going mainly back-end, I’d recommend picking up another popular back-end language, and still look into all of the points you mentioned.

Good luck :smiley:


Hey Brad,

Thanks a lot for the detailed answer!

You’re completely right :slight_smile: according to my manager though, this QA position involves more programming than most of other QA positions. One of my colleagues said the same. We aren’t doing any manual testing for instance.

I should’ve been clear, even though you guessed it: I don’t mind studying something else than JavaScript, I’ve actually worked with java/C# only for the last year or so.

I meant when to use List/Dictionaries/Arrays in C# for instance. Or how to for instance read all lines of a 100Gb file, loop through all of them, while having 4Gb of RAM.

Knowing that I use java/C# now, would you still recommend the JavaScript certification of fCC? What about the “Apis And Microservices Certification”?

Thank you :slight_smile:

Depending on the situation you probably want to pick the right data structure for the given task, knowing more about data structures and algorithms will give you insight as to which is better (and which is worse). Stuff like optimally sorting an array (how .sort works under the hood) is good knowledge to know. Its the sort of knowledge you’d end up using day to day without knowing it :slight_smile:

Reading a 100gb file with only 4gb requires knowledge of stuff like streams, and more “lower-level” knowledge, as computers today have a lot of memory, but never infinite memory. Loading that much data into memory basically isn’t possible, so managing your code to work with the system’s limitations would be important, more-so than sorting an array of 100 items. (A good theoretical+practical problem would be how to sort an array saved into memory that is too large to load into memory?)

I say learn JS if you ever plan on being a full-stack or working on the front-end. There is no getting away from using JS, even for back-end heavy focused applications. Today the FE has taken over in the form of Single Page Applications, where FE Javascript handles most of the logic, supported by back-end APIs.
There are still plenty of applications that don’t use this approach, so if your not interested in JS that much, and don’t plan on doing FE any-time soon you don’t have to learn JS. :slight_smile:

I haven’t done this part of the curriculum so I can’t talk about any first-hand experience. My Current understanding is you learn nodejs + express + mongodb, or the back-end part of setting up a full stack MERN stack. (Mongo-Express-React-Node)
If you want to focus on developing back-end with Java/C# then you could totally use those languages to build your backend, as it doesn’t matter in practice :slight_smile: If you are going full-stack, then you’ll end up needing to know 2 languages (java/C# and Javascript for the front-end) which is one reason why nodejs has gotten so popular lately, as if you know JS, you can build your full stack.

So the choice is yours if you want to learn what FCC has to teach, just remember, no one cares about certificates, they only care about your experience and what you do know. You could do all the FCC certs, or spend your days building a full-stack app from scratch, you’d end up with basically the same hire-ability. :smile:

I personally learned programming with Java first, then learned some Python, did a few side-projects, and eventually swung around to JS/TS, which is what I use today. If your just starting out it’s less about the languages, and more about what you want to-do, and the languages that are used for that area :slight_smile: