ezoic

Friday, June 17, 2016

What you need to learn in order to become a programmer/programming analyst,chapter one

Chapter one: basics

This article is for those who want to change their direction on work. Those whose major was CS in undergraduate can skip the article.

You need to have some project experience, like some app you finish etc. It can be what you program yourself. And there are some paid projects on upwrok.com. You can try. They will probably ask you during interview.

 If your major is not CS/SE, and you plan to be a SWE. You need to learn basic algorithms, data structures, 1-2 programming languages, software engineering, database, operation system.

I listed the basic requirements below:

1. Algorithms and data structures:
you need to learn the features of all kinds of data structures, time and space complexity, places to use it, including map, list, tree, stack, queue.  A lot of companies like asking questions about hash, like expected complexity, collision, separate chaining, arraylist and linkedlist.

The complexity of all kinds of sorting algorithms, can write down the code for all kinds of sorting algorithms. Other algorithms include recursion, DP etc, you also need to learn. There are a lot of online course. After you finish them, you can drill through the leetcode. And then you can handle most of companies' interviews.

2. Programming languages
Java, C#, C++, python, javascript. You must learn one of them. And know the concepts and feature of objected oriented programming.

For Java, you need to learn, Abstraction, Encapsulation, Polymorphism, Inheritance. Interface and abstract class. Garbage collection. Multithreaded program, program synchronization,Exception handling

3. Software Engineering

Need to know design pattern, lifecycle, testing

4. Database
Can write basic SQL query. Understand the relational database. Schema, table, view, trigger. Normalization, denormalization, 3NF, BCNF, different joins, transactions, different isolation levels.

5. Operating system

Understand the basic concepts of Operating system.

difference between process and thread. Scheduler, paging, socket, what is deadlock, concurrency control, multi-threading, synchronization, DMA

6. Network

Not so many questions. TCP  and UDP. when you click a website, what happens.

7. Linux

Linux basic commands. git/svn etc.

No comments:

Post a Comment

looking for a man

 I am a mid aged woman. I live in southern california.  I was born in 1980. I do not have any kid. no compliacted dating.  I am looking for ...