Codementor Events

Quick Guide for a Software Engineer

Published Jul 13, 2019
  • Have Strong fundamentals in basics and you should have horizontal overview on most of the topics and vertical depth on any specific topic(s).
  • Programming Language : Master atleast 1 programming language (Vertical depth) and know about the pros, cons, features of your mastered programming language with respect to other languages available (Horizontal Overview). Some of the programming languages are c/c++, Python,PHP, Java, Scala, Ruby.
  • Datastructures and Alogrithms : It plays vital role in computer science. Go through Stack, Queue, Linked List, Trees, Hash Tables, Sets, Maps, Graphs, Dynamic Programming, Backtracking and practice enough programs. Some of the useful resources : Data structures and Algorithms made easy Narasimha karumanchi , Code Monk — Be a better programmer , Data Structures Archives — GeeksforGeeks , Coding Interview preparation made easy , Data structures and algorithms by Thomas H Cormen
  • Databases : SQL Queries, more exposure to Database Design, Normalization and Indexing Techniques, Triggers, RDBMS (MYSQL/Oracle), NoSQL (MongoDB , Graph databases like Neo4j, Graphx).
  • Operating Systems : Know all the basic concepts and become familiar with atleast 1 linux flavour (Parot OS, KALI Linux, Ubuntu, Fedora).
    Computer Networks : Socket programming, Layers of computer networks.
  • Web Application Development : Frontend (HTML, CSS, Javascript/Jquery, Angular JS , React JS), Backend (PHP/Python/Java/Ruby) , Understanding of JSON, XML , WebServices like REST, SOAP. Recommeded Frameworks : Bootstrap , Python (Django, Flask ), PHP(Codeigniter, Zend, Laravel), Ruby (Ruby on Rails), Java (Spring, Jersy) W3Schools Online Web Tutorials , Free Online Tutorials and Courses , Video Tutorials — thenewboston , XAMPP Installers and Downloads for Apache Friends
  • Mobile App Development : Android, Windows, IOS Free Online Tutorials and Courses , Tutorials
  • Game Development : Pygame, Unity Game Engine( Make A Pong Game With Unity 2D , Unity 2D Pong Game , THE ROAD RUNNER TUTORIAL 1: SETTING UP THE WORLD )
  • Version Control System : It helps developers to work together, share code hassle free and maintaining history of individual works, reverting code to previous/later versions with ease. e.g. GIT, SVN, CVS . Some of the popular sites include github, gitlab, bitbucket . git — the simple guide , Git — Documentation, Mercurial SCM
  • Testing : Junit, Selenium, JBeahave
  • Open Source : Contribute to open source. Why Open Source ?
  • Shell Scripting

Some of the best practices to be followed are as follows

  • Keep reading existing software source code. I know reading and understanding existing source code is boring, but it gives you a chance to know the best practices followed by most of the software developers. Poorly written source code teaches you to write good source code, provided you take it positively and learn a lesson from it. If you want to be a novelist, can you write best novels without reading any of the novels ? I would say NO. Similarly , if you want to write best source code ,then how will it be possible for you to write without reading tons of source codes and know the best practices (Indentation, Comments etc).
  • Document your code.
  • Test your code properly.
  • Keep on learning new things and leave the Ego behind. New technologies are coming everyday and no one have complete command on all things. So feel free to ask/help your colleagues, friends and even juniors.
  • It depends on you whether you want to sustain (not adopting to learn new things) or want hikes in career growth.
  • Keep yourself updated with latest tools and technologies.
  • Participate in Hackathons, Coding competitions, even if you don’t know anything. - Winning and losing are part of the game, but the learning and experience gained will be forever.
  • Start doing as many projects as possible.
  • Text Editor (Sublime Text, Visual Code, Notepad++)
  • Remote system Connection clients : Putty, WinScp, FileZilla , Remote Desktop
  • IDE ( Intellij, Eclipse, Visual Studio , Android Studio, NetBeans )
  • PHP Web development (XAMPP, Wamp)
  • Continious Integration (Docker, Jenkins)

Websites

Stackoverflow, w3schools, tutorialpoint, coursera, edx, udacity, thenewboston, HackerEarth, HackerRank, Spoj, Codechef, interviewbit.

Discover and read more posts from Mandili Shilpa Dora
get started
post comments1Reply
Parth Shandilya
5 years ago

Great Article!