Sunday 30 September 2018

10 Useful Tools, Libraries to Learn Programming Language - Every Programmer Should Know


10 Tools Every Programmer Should Know

Some of you may think 10 tools are nothing but, to be honest, if every programmer knows these truly well, he can accomplish a lot in his day to day job.
Anyway, without any further ado, let's see my list of 10 tools every software developer should know and know well.
1. Git and Github
A good knowledge of any source control repository is mandatory for any programmer or software developer because you need to do check-in, checkout of code every day.
And, to become a better developer you should also know advanced concepts like branching and merging.
In today's world, Git and Github have become synonymous with source control repository and version control tool.
This is the single most important tool for a programmer now and that's why I suggest every programmer learn Git and Github truly well.
If you are a beginner or a programmer who wants to improve his Git knowledge, I suggest you to go check out Git Complete: The definitive, step-by-step guide to Git course from Udemy. One of the best course to learn Git in depth.
2. SQL
This is another essential tool or programming language every programmer should learn. SQL is actually standards Standard Query language and used to work with the database. By using SQL you can read, update, and delete data from the tables.
Since we use database everywhere in the real world, a programmer should have a good understanding of SQL.
Apart from knowing basic commands e.g. SELECT, INSERT, UPDATE and DELETE, a programmer should also know how to write complex queries using joins, aggregate functions, subqueries, and other advanced functionalities.
If you are new to SQL or want to take your SQL skills to next level then The Complete SQL Bootcamp is a good place to start with.

3. Python
You might be surprised that as a Java developer, why I am suggesting every programmer learn Python? Well, there is a reason for it. Python is a powerful high-level, object-oriented programming language which is very versatile.
You can not only create big applications as you do in Java but also you can use Python to create useful scripts to automate stuff.
It also has numerous modules which make almost anything possible, starting from accessing the file system, developing web applications to machine learning.
I can't say more but to show you this picture which clearly explains why every programmer should learn Python.
It also has simple easy-to-use syntax, making it the perfect language for someone trying to learn computer programming for the first time. If you want to learn Python then The Complete Python Bootcamp course is a great place to start with.
4. Excel or any SpreadSheet
The Microsoft Excel is another essential tool for programmers and software developers. Don't mistake it just for a spreadsheet application, you can do a lot more using Excel then you can ever imagine.
The biggest reason to learn Microsoft Excel is that you will find it everywhere. Everybody uses it, starting from business to BA, QA and project managers. You can use it generate reports, automate and reconcile stuff and a lot more.
If you want to go beyond just copy pasting stuff into excel to learn functions like VLOOKUP, I suggest you join the Microsoft Excel - Excel from Beginner to the Advanced course on Udemy. One of the best course to learn Excel in depth.
5. Word or Similar
Microsoft Word is not as popular as Microsoft Excel but still its one of the essential tool for programmers and software engineers.
As a developer, you often need to create documents e.g. software design documents, requirement documents etc and Microsoft Word is the best tool for that.
It provides sophisticated formatting options to create really good looking documentation.
If you are a beginner or an intermediate developer who wants to improve your knowledge of Microsoft world then I suggest you go through Master Microsoft Word Beginner to the Advanced course on Udemy.
6. PowerPoint
Along with Microsoft Excel and Word, Powerpoint forms the trilogy of essential office tools and that's why they are also essential for Software engineers and IT professionals including developer, QA, BA, and project manager.
Microsoft PowerPoint is the most popular tool to create presentations and as a programmer, many times you need to do presentations e.g. presenting your ideas to business, your plans to managers and doing many knowledge sharing sessions between teams and that's why you just can't ignore powerpoint.
If you want to learn Powerpoint or improve your knowledge then Master Powerpoint presentations course on Udemy is a good place to start with.
7. Text Editors (SubLime)
Every programmer should know one text editor pretty well. Software developer do a lot of text processing job and knowing a text editor will always help.
Apart from NotePad, which is a very good, omnipresent basic text editor, I encourage the programmer to learn some advanced text editors e.g. Sublime or NotePad++.
They support regular expression search and replace and Macros which will help you a lot with your everyday work. If you want to learn more about a sublime text editor, Sublime Text for Rapid Web Development is a good place to start with.
8. Linux commands
Just like SQL, Linux commands is another essential tool for programmers. Every programmer has to work on UNIX sometime and many of us spend most of our day on Linux machine.
A good knowledge of Linux commands means you can find what you want, you can know what's going on with the machine and you can troubleshoot any issues with your application running on Linux.
This is a must-have skill for every programmer and if you are not comfortable with Linux commands you must spend some time to learn it, especially if you have some exploring to Linux. For beginners, Linux Command Line Basics is a good place to start with.
9. SVN
Even though Git has taken almost 70% market share in terms of version control system, there are still projects where SVN (also known as subversion) is used.
Not just on the property but also on open source and that's why knowing tortoise SVN is good for programmers.
It's the same tool, I have started with SVN 12 years back and it's still around. If you are a beginner or someone who want to improve his SVN knowledge and learn some advanced concepts like branching and merging in SVN then Introduction to SVN by John Sonmez on Pluarlsight is a good course to start with.

10. Powershell or Cygwin
Once you worked in Linux, you feel constraint while working in Windows because there is nothing like Linux commands in Windows and Powershell just solves that problem for once and all.
Windows PowerShell is a shell developed by Microsoft for the purposes of task automation and configuration management.
This powerful shell is based on the .NET framework and it includes a command-line shell and a scripting language so that you can automate stuff and create a script as you do in Linux.
If you want to start with PowerShell then I suggest you look at Learning Windows PowerShell course on Udemy, I have bought it recently to improve my Powershell skills.
That's all about essential tools for every programmer. These are some of the basic tools which everyone need be it a web developer working in JavaScript, a Java developer working on server-side code, or a mobile developer working on Android or iOS apps.
A good knowledge of these tools goes a long way in your software development career because you will use these tools each and every day and appreciate the time and effort you put initially to learn them.

source:
houseofbots.com

Sunday 16 September 2018

Google Interview Experience | Set 6

Google Interview Experience | Set 6

It was a nice experience to be part of google placement programme. There were 4 Rounds
The online test consists of 4 modules.
For each module, a timer is set (at the right-hand side bottom of the screen).
Total time given is 40 minutes.


Module 1: English (duration 5 min):
It consists of a single passage followed by 5 questions.
Module 2: General aptitude (duration 10 min):
Module 3: Technical questions (duration 15 min):


It consists of 15 questions where some are web based, HTML, protocols Etc. For this section going through COMPUTER NETWORKS subject will be helpful to a great extent.
Module 4: Test on Analysis (duration 10 min):
This section is the most time consuming one. Here we are asked to Rate certain sites along with an explanation. The images of these sites are also provided to us for a clear view and better understanding.
refrence:geeksforgeeks.org

Google Interview Experience | Set 7 (For Software Engineering Intern)

Google Interview Experience | Set 7 (For Software Engineering Intern)

Round 1: Coding Sample
In this coding sample, I was given 90 minutes to answer 2 coding questions.
Question 1: Given a string A consisting of n characters and a string B consisting of m characters, write a function that will return the number of times A must be stated such that B is a substring of the repeated A. If B can never be a substring, return -1.
Example:
A = ‘abcd’
B = ‘cdabcdab’
The function should return 3 because after stating A 3 times, getting ‘abcdabcdabcd’, B is now a substring of A.
You can assume that n and m are integers in the range [1, 1000].



Question 2: Consider an undirected tree with N nodes, numbered from 1 to N. Each node has a label associated with it, which is an integer value. Different nodes can have the same label. Write a function that, given a zero indexed array A of length N, where A[j] is the label value of the (j + 1)-th node in the tree and a zero-indexed array E of length K = (N – 1) * 2 in which the edges of the tree are described, returns the length of the longest path such that all the nodes on that path have the same label. The length is the number of edges in that path.
Example:
A = [1, 1, 1, 2, 2]
E = [1, 2, 1, 3, 2, 4, 2, 5]
This tree is shown below. A node follows the form label, value.
----------1, 1

-----1, 2        1, 3

2, 4      2, 5
The function should return 2, because the longest path is 2->1->3, and there are 2 edges in this path.
Assume that 1 <= N <= 1000 and each element of the array A is an integer in the range [1, 1000000000].

Round 2: Phone Interview
In this phone interview I was given one question.
Question: Write a function that takes a list L and returns a random sublist of size N of that list. Assume that the indexes must be in increasing order. That is, you cannot go backwards.
Example:
L = [1, 2, 3, 4, 5]
N = 3
The function should return one of these lists:
[1, 2, 3]
[1, 2, 4]
[1, 2, 5]
[1, 3, 4]
[1, 3, 5]
[1, 4, 5]
[2, 3, 4]
[2, 3, 5]
[2, 4, 5]
[3, 4, 5]

Round 3: Phone Interview
I was again asked only one question.
Question: Given a list L of video names and their watch rates, write a function that will return the videos with the top 10 watch rates. Video names may appear more than once.
Example:
L = [(‘abc’, 10), (‘def’, 15), (‘ghi’, 10), (‘abc’, 12), …, (‘xyz’, 100)]
The function should return [‘xyz’, ‘abc’, …, ‘def’, ‘ghi’]
Experience:
I solved all the questions but, unfortunately, I was not selected. Though I was not selected, I had a very positive experience. My interviewers and recruiters were all pleasant to work with. I will definitely try again next year and hopefully, I will clear it and get selected for a full time job.

Tips for Interview:
Ask questions. The interviewer will purposely give you a vague question in hopes of you asking the necessary questions to clarify it for yourself.
Don’t panic. I know it can be nerve racking to go on an interview, especially if it’s your first. But, nerves are only going to make it worse. Collect yourself, and if you don’t know the answer, it’s okay. Think through it for a few minutes and I’m sure anyone can come up with a solution. These questions are designed for you to be able to solve in the allocated time for an interview.
THINK OUT LOUD! I can’t stress this one enough. You are also being judged on your thought process. If your interviewer doesn’t know what you are thinking, they can’t throw you hints or correct you in any way. And believe me, they want to see you succeed. They are there to help you and guide you through the problem.
Other than that, study, study, study. Do as many algorithmically challenging problems as you can. Cracking the Coding Interview and Geeks for Geeks will be your best friends through the study process. Take advantage of these resources.
refrence: geeksforgeeks.org

😍Developer on Weekends #shorts #officememes #developermemes

😍Developer on Weekends #shorts #officememes #developermemes Welcome to the latest viral YouTube shorts meme for developers! 😍Developer on...