Programming fundamentals questions


#1

So there’s this company here locally that sets up web developer apprenticeships with companies that they partner with. One of the things they mentioned is that, if I were to get to the part where I come in and code for about an hour or two, that one of the main things they look for is an understanding of the fundamentals in coding and programming, and having a deep understanding for it, not just a superficial understanding.

So, TL;DR: what do you consider fundamental aspects of programming? If you were going into this, what would you want to make sure you understood? I’m just trying to kinda see if what I think is the same as others, or if there’s any areas I need a better understanding of beforehand.

Thanks. :slight_smile:


#2

Here are some resources that I think will come in handy:


If I needed to create a short list, I would say you need to be able to discuss Big-O notation, linked lists, queues, stacks, and binary search trees. There’s a lot to each of these, but just being able to describe what they are and why they are useful would go a long way.


#3

From a high level point of view, the topics that every programmer should know, including front-end, are: operating system concepts (processes, threads, etc), discrete math, data structures, and algorithms.


#4

They’ll probably check if you’ll be using procedural or functional programming techniques.

Maybe check if you’ll be using commands like map, reduce, forreach, spread operators, ternary, using objects to represent data, classes, this, make your own methods, properties, inheritance, etc


#5

Google once released a video about what they do expect people to know when they approach an interview with them.

Of course this is for a software engineer position, but I guess many principles apply in general.
Here’s the video. It’s pretty much all summed in the tip section:

So taking from what they talk about into the ( I suppose you are going for a front-end interview ) web world:

  1. Prove what’s in your resumeè:

If you showed them some project, be ready to work with those technologies.

  1. A general idea of basic data structures and common algorithm:

Something universal like hash table, arrays, stacks, big O notation.
Probably just knowing that they exists and how they work is enough… knowing how to implement them is a plus.

  1. Coding away from a computer:

It’s probably enough to refresh your pseudo-coding skills and not feel 100% dependent on a google search on-line.

  1. Coding skills.

So for example knowing how to implement a recursive solution, or different kind of loops, knowing how to keep an object immutable and so on…

  1. Be yourself.

Don’t be afraid to ask questions and admitting your limits: in general interviewer wants to see how well they can work with you, not how well you work.