Thursday, August 13, 2015

10 Secrets to Learn in Software Engineering Degree

shutterstock_150587633_techschool
It’s an all too common story: You go to school for years and years and walk out with a freshly printed diploma, snag your first job, and yet get immediately blindsided by unwritten rules and other day-to-day complexities that no one bothered to warn you about. And programming is no exception.
Few students are 100% prepared for their first real job. And a computer science degree is lot more than a vocational degree solely designed to prepare students for a job writing banking apps. But I’m still continually surprised to see how many recent graduates—and even some experienced programmers—who still edit their code in Notepad or Pico and don’t know how to use version control.
If you don’t want to be “that person” – or don’t want to be that personanymore — take the time to learn these 10 basic skills and you won’t need hand-holding to get the real work done:

1. Version control systems

It’s perhaps the biggest omission in computer science curricula. Institutions of higher education teach how to create source code for programs, but usually ignore everything about the management of that code. Every programmer should know how to create repositories, edit and commit code, and branch and merge effectively as part of a project workflow using Git or Subversion. Knowing about version control systems also means that you’ll know better than to work for any organization that doesn’t use one.

2. How to write

Working as a programmer is more than just writing in a programming language. You also have to write release notes for your projects. You write commit messages for version control. You write tickets for bugs in the system. All of these and many more require clear, effective English communication – a skill that computer science programs seldom emphasize.

3. Regular expressions

Regexes are a language all their own, and every modern programmer needs to be adept in their use. Every programming language supports regexes or has standard libraries to work with them. If part of your code assignment is to validate that a part number is five letters, a dash and a digit, you should be immediately able to express that as /^[A-Z]{5}-\d$/.

4. Using libraries

It’s 2014, and nobody needs to use a regular expression to extract the hostname from a URL. Every modern programming language includes a standard library of common functionality, or has standard libraries easily available.
Programmers need to understand that code that has already been written, tested, and debugged is going to be better quality than new code that she has to create. Even more important, code that doesn’t have to be written can be implemented much faster.

5. SQL

As someone said to me at a meetup recently, “All the SQL I know I learned on the job. Why are databases an elective? What doesn’t use a database?”
The era of storing data in flat files is over. Everything goes into and out of a database, and SQL is the language that’s used to retrieve it. SQL is also a declarative language, not a procedural language, and so requires learning a new way of thinking about problem solving. But every programmer should understand the basics of database normalization and be able to do SELECTs (including basic INNER and OUTER JOINs), INSERTs, UPDATEs and DELETEs.

6. Tool usage: IDEs, editors, CLI tools

A carpenter would never complete an apprenticeship knowing how to use a only hacksaw, so it’s astonishing that schools can turn out CS graduates who know only Notepad or pico. It’s the job of programming tools to help manipulate the source code and all other data in the computer to make the programmer’s life easier. The Unix command line, shell scripting, find, grep, and sed should be part of every programmer’s knowledge set.

7. Debugging

Every programmer should be able to debug with an interactive debugger or by sprinkling print statements liberally throughout the code. The ability to track down a problem through stepwise refinement is too important to be left for programmers to learn by the seat of their pants.

8. Defensive programming

Even rockstar programmers are fallible, much of the world is out of our control, and things will go wrong. Defensive programming is about understanding that simple truth. If things didn’t go wrong, we wouldn’t have to check file opens for success, or assert that customer IDs are valid integers, or to test our code to make sure that it works properly.
Programmers need to grasp that compiler warnings are helpful tools that make life easier, not nuisances to be avoided. Every programmer should know why each PHP program should start with
error_reporting(E_ALL), or each Perl program with use strict; use warnings;.

9. Teamwork

Very few programming jobs allow you to work entirely on your own–and those that do are often intellectually crippling and leave you a worse programmer than when you started. Your code must interact with code written by others, or often be intermingled with code from others. No matter how talented, a programmer who can’t collaborate on projects with others has negative productivity, and quickly becomes a liability to the organization.

10. Working on existing code

In school, every class assignment is a new, greenfield project. That’s not how it works in the real world. The first thing that happens to new hires is they get assigned to fix ticket #8347 in the bug tracking system. After that, they have to add a small new complementary feature to an existing system with an established codebase. Designing new code comes months later, if they’re lucky.
*School image courtesy of Shutterstock.com.

How to prepare for your Next Interview

***** Article courtesy of https://www.linkedin.com/today/post/article/20140611215919-21801297-there-are-stupid-questions-how-to-prepare-for-your-next-interview *****

People say that there no stupid questions. Wrong… at least, when you are interviewing for a job. I have been training people on how to interview, celebrating job offers, and consoling losses for the past 5 years. Over the course of the time, I have learned a few lessons.
First of all, most great candidates are not experts at interviewing. As a matter of fact, most great candidates are terrible at interviewing because they rarely have to do it. However, being a great interviewer is how most people get job offers these days. As with anything in life, the best way to succeed is Prepare, Prepare, Prepare.
There is a section in almost all interviews where you will have a chance to ask questions. The goal of this section of the interview, contrary to popular belief, is to sell yourself. How? Ask questions about the interviewer’s own experiences. Why? Because the more people talk about themselves, the more they will like you!
Too many candidates want to picture themselves in the job and start asking logistical-type questions like: how often are expenses reimbursed, can I come in at 7:30 instead of 8, or is there free coffee… These questions waste valuable time and, honestly, are slightly presumptive.
So, what are some good questions to ask? Anything that gets the interviewer talking about things they enjoy about their job. Examples: What do you like most about working here? Why did you decide to join X company? What is the culture like here? What are some traits of the most successful members of your team? What is your management style like? What are some examples key projects that your team has worked on?
If you really need to ask some logistical questions to decide how this position stacks up against the others; you still must restrain yourself! The key to successful interviewing is to “sell first, buy later”. I always say, you cannot decline an offer that you don’t have.
Trust me; you will have plenty of time to ask logistical/buying questions once the company has decided to extend an offer to you. And, if you wait until this point in the process, you just may like their answers a little bit better!

Saturday, August 8, 2015

Google Play Store "Downloading" Error

While Downloading any App or Updating any App from Google Play Store,it shows “Downloading” but Download does not start even after keeping Phone idle for an hour.

I was also facing the same problem on my Home Wi-fi .I was able to download from my Office Wifi , Mobile Data but there was some problem in my Home Wi-fi.

There are multiple number of solutions present over internet . I tried may of them like :
  1. Clear data of Google play Store App.
  2. Restart Wi-fi Modem.
  3.  Restart Mobile.
  4. Factory reset.
  5. Re-Configure Wi-fi Modem


I tried all the above solutions but None of them worked for me.

So,If you are also facing the same problem and have tried all the above solutions then There is 1 More Solution which worked for me. :)


I tested this solution at
      


     
1.   When connecting to your Wifi Connection , there will be 2 Options available below Password Field
    • Show Password
    • Show Advanced Options
  Select “Advanced Options



2. In IP Settings Dropdown , Change from “DHCP” to “Static




     
   3.    Then Enter the following details


  •         IP Address : 192.168.1.128
  •         Gateway : 192.168.1.1
  •          Network Prefix Length : 24
  •          DNS 1 : 8.8.8.8
  •          DNS 2:  8.8.4.4



      Then Just Connect and try Downloading / Update an App from Google Play Store.I hope it will work for You.

--------------------------------------------------------------------------------------------------------------------------
If this post solved your Problem and if you would like to Buy me a Coffee then Please Donate :


Or

Donate Smartly ...Download Any of the App below by clicking on the Icons , they will Buy me a Coffee on your Behalf.