DEV Community

Cover image for Important points for CS newbies !
D\sTro
D\sTro

Posted on • Updated on

Important points for CS newbies !

Do you wonder why universities like MIT, Stanford, CalTech etc produces the best engineers AND are responsible for top inventions ?

yeah! first of all its not about University, its about the "Approach" we opt. good approach leads the best always and here are some tips for computer science enthusiasts⤵️

1.) the ultimate purpose of computer science is to let people create smart products for the masses. that means, once you finish your CS grade, you will be working as software engineer creating software for web, mobile, system, mainframes, supercomputers scada/PLC etc(so vast)

2.) never try to write programs using "01" strokes. its a binary instruction(machine code) which is created by assembler(software [.asm]). you can just appreciate and surprise but taking that in practice is just waste of time.

[Update: this job is done by compiler and i don't think any software company in the world would hire machine coder because its so so tough. yes ofcourse you can try assembly language. we still use it]

3.) invest good time understating system architectures, memory allocation strategy and basic of processors. at this stage, you dont need to think much about how processors are created or how malloc() works, just the understanding that's all

4.) Understanding more than one OS is hot these days for both software development as well as server and DevOps job. prefer any distro of unix systems like ubuntu(easy). windows is good too i still use it. [Kali Linux is the love of (Hackers)]

5.) Data Types & Structures, variable, operators, function, class are the bread and butter of any programming language. if you skip this topic, it will hurt you onward. i tell you a quick story of NASA. their engineer blew up several million satellite project because one of their engineer wrote "delta = 2" instead "delta == 2"(comparison vs assignment operator)

6.) chances of failure becomes high if you start taking interest in more than one programming language. this is called "Polyglot" programmer which is high in demand but bad choice for student. so you need to master one first.

7.) Data Modelling is like sudoku you can say. it will test your level of IQ and your social appearance. databases are of two types: SQL(MySQL), NoSQL(mongoDB) and Graphical(Neo4J) you can chose the easier one first.

8.) Develop architecture design and problem solving skills. you don't need to go take a class for this. all you need is take a problem and solve it with steps. those states becomes "code block"

9.) many people get confused when they have to chose a programming language. you shouldn't! just take any like Python, Java, C/C++, Ruby, Pascal etc because at this stage you don't need to take care how efficient this programming language is. sharpen your skill first

10.) Never get demotivated if you don't get a good university. you just need a good strategy. i have seen many people who don't have even a bachelor(non-engineering) degree but they are leading big team of masters in big firm.

// Banner Image Source: https://www.facebook.com/groups/278421090149519/
(one of my group from my page : https://www.facebook.com/itsmukulmishra)

Note: this opinion is mine which i have experienced throughout my professional life. hope this will help!

that's all! don't forget mentioning your point/question.

thanks😊

Top comments (15)

Collapse
 
mccurcio profile image
Matt Curcio

Why do you suggest this?

never try to write programs using "01" strokes. its a binary instruction(machine code) which is created by assembler(software). you can just appreciate but taking that in practice is just waste of time

Collapse
 
slimdestro profile image
D\sTro • Edited

When i was starter I was so impressed when I heard that high level codes are finally converted to 0/1 and I started learning that but in real world, it requires nowhere because this job is done by compilers

Collapse
 
darkwiiplayer profile image
𒎏Wii 🏳️‍⚧️

It is still a cool thing to try out for the lolz though. If you're going to work in fields like reverse engineering, knowing the hex codes of certain instructions at first sight might even save you some time.

Thread Thread
 
slimdestro profile image
D\sTro • Edited

(Hex)#069(little purple color code)
0110(dont know and I wont invest hours remembering these😆)

Hex and machine codes are 2 different thing. We dont use machine code now(compiler does) but we use hex code on daily basis as both dev and design purpose

Thread Thread
 
darkwiiplayer profile image
𒎏Wii 🏳️‍⚧️

Hex codes are very commonly used when inspecting binary files, so when looking at a compiled executable, one will usually see the machine instructions in hexadecimal. This obviously doesn't just affect CPU instructions though; magic numbers are also very commonly named as things that are just useful to remember if you have enough contact with them.

Collapse
 
ayushbasak profile image
Ayush Basak

i tell you a quick story of NASA. their engineer blew up several million satellite project because one of their engineer wrote "delta = 2" instead "delta == 2"(comparison vs assignment operator)

Source?

Collapse
 
slimdestro profile image
D\sTro • Edited

Search for "Climate Orbiter spacecraft software bug" or millennium bug. It was one liner code something like "someVar = 2 instead someVar == 2" which compiler was failed to execute due to os limitation of that time

Collapse
 
darkwiiplayer profile image
𒎏Wii 🏳️‍⚧️

databases are of two types

They certainly are not. SQL is just one very common query language, but it's in no way a criterion by which one should categorize databases.

Collapse
 
slimdestro profile image
D\sTro • Edited

I mentioned 3 types(graphical) just forgot adding 3 instead 2😀 and purpose of writing this note was to help resolve confusion newbies gets when they are in early stage. Choosing database for specific project is level of at least 3-5 years of professional experience. Btw I've been using mongodb for last 4 years but before that I was using only mysql

Collapse
 
darkwiiplayer profile image
𒎏Wii 🏳️‍⚧️

For beginners, I'd always recommend one of the big relational databases like PG or MySQL, mostly because they force you to consider your database schema before you even start using them.

Learning what other types exist, I don't think is something that needs to be simplified. Some relational databases don't use SQL, some non-relational databases actually do (and mimic a relational model on top of other primitives), so I don't think SQL and NoSQL is really a good classification in any way. The former is just a query language and the latter is a meaningless buzzword.

Thread Thread
 
slimdestro profile image
D\sTro

Later is just a "meaningless buzzword". You mean noSqls are meaningless 😀
ok let's assume you just didnt see this post. It's ok let's not paint this post up. Thanks a lot!

Thread Thread
 
darkwiiplayer profile image
𒎏Wii 🏳️‍⚧️

NoSQL databases are cool, in fact I was pretty hyped about a few of them every time I found out about them, but the word NoSQL is a buzzword and doesn't mean all that much. It's like classifying all music into "Guitar Music" and "NoGuitar Music". Maybe in certain conversations that makes sense, but it's not how I'd sort music in general.

Collapse
 
mathewthe2 profile image
Mathew Chan

This looks too vague for a 'how to kickstart' post. It would be a lot better if there is more actionable advice.

Collapse
 
slimdestro profile image
D\sTro

Btw I changed title. Agreed with your points. Thanks!

Collapse
 
slimdestro profile image
D\sTro

You can suggest too 😊