Saturday, September 9, 2017

Turn Your Internship Into A Full-Time Job

What is an Internship?

An internship is a major-related work experience that usually lasts one semester, may be paid or unpaid, full-time or part-time

A summer job, volunteer, or community service position that is related to your major could also be considered an internship.

The key in any internship is gaining experience that is related to your major.

Internship Benefits

  1. Career Exploration
  2. Building your Resume
  3. Knowledge of Field and Industry Skills
  4. Networking with Professionals
  5. Increase chances of Permanent Employment

Internship Goals

  1. Define your current situation:
    1. Education (Fresher)
    2. Current Grade    
    3. Location
  2. What field/industry interests you?
  3. What skills do you want to acquire?  **List Skills**
  4. Understand your limitations & Obstacles

Internship Search Strategies

Conduct research of field/industry, organizations, and internship posting resources
Two Approaches:
  1. Search Job Postings
    1. http://www.twenty19.com/
    2. http://www.letsintern.com/
  2. Proactively Contacting Employers

Internship Application Strategies

  • Prepare all materials before applying
    • - Resume, Professional References, Transcripts, etc
  • Following Instructions completely & thoroughly
  • Attend the interview

A Fulfilling Internship

  1. Meet often with your supervisor to set goals, explore career paths, and create connections
  2. Complete duties with professionalism & enthusiasm
        -This is in both preparation for your long term career as well as creating a lasting and positive impression
  3. Take every opportunity (training, meetings, working with other departments, etc)
  4. Absorb as much as possible from this experience
  5. Obtain and note tangible results and accomplishments
  6. NETWORK!

After the Internship

  1. Create a lasting impression  - Thank individually all of the professional colleagues and supervisors summarizing your experience with them and obtaining their contact information
  2. Document Experiences - Keep your contacts on file (LinkedIn) and record your experiences, accomplishments, and knowledge gained from the internship
  3. Follow up - Periodically, contact your supervisors and colleagues for updates on the company, programs, and where you are in your career. 

Recommended Learning

  1. Focus on basic coding instructions. Brush up your Computer Science Fundamentals
  2. Learn to code in (at least) one object-oriented programming language (C++, Java®,Python®,C#)
  3. Learn other programming languages - JavaScript, CSS & HTML,Ruby,PHP,C,Perl,Shell®script,Lisp,Scheme
  4. Test your code
  5. Develop logical reasoning and knowledge of discrete math
  6. Develop a strong understanding of algorithms and data structures 
  7. Develop a strong knowledge of operating systems
  8. Learn artificial intelligence and machine learning
  9. Learn Mobile development
  10. Learn web development
  11. Learn cryptography
  12. Work on projects outside of the classroom
  13. Work on a small piece of a large system (codebase), read and understand existing code, track down documentation, and debug
  14. Work on projects with other programmers
  15. Practice your algorithmic knowledge and coding skills
You can also refer to the following programs to brush your fundamental computer programming skills.

Google Technical Developer Guide

Google Technical Development Guide

This guide helps you to develop your technical skills  through self-paced, hands-on learning. This guide is meant for Computer Science students those who seeking an internship at Google.

Note: Following the guide does not guarantee a job at Google.

Recommended Learnings

“Introduction to CS” course Focus on basic coding instructions.

Online resources:
Introduction to Computer Science, Udacity
Learn to code in (at least) one object-oriented programming language (C++, Java®, Python®) Online resources for beginning programmers:
  1. Java Programming: An Introduction to Software, Duke University, Coursera
  2. Learn to Program: The Fundamentals, University of Toronto, Coursera
  3. Introduction to Programming in Java, MIT
  4. Google's Python Class
  5. Introduction to Interactive Programming in Python, Rice University, Coursera
Online resources for more experienced programmers:
  1. Java Programming: Data Structures and Beyond, University of California San Diego, specialization on Coursera
  2. Design of Computer Programs, Udacity
  3. Learn to Program: Crafting Quality Code, University of Toronto, Coursera
  4. Introduction to Programming Languages, Brown University
Learn other programming languages
JavaScript®
CSS & HTML
Ruby®
PHP®

Perl®
Shell® script
Lisp®
Scheme®
Online resources:
Codecademy
Test your code Learn how to catch bugs, create tests, and break your software.
Online resources:
Develop logical reasoning and knowledge of discrete math Online resources:
  1. Mathematics for Computer Science, MIT
  2. Introduction to Mathematical Thinking, Stanford, Coursera
  3. Probabilistic Graphical Models, Stanford, Coursera
  4. Game Theory, Stanford and University of British Columbia, Coursera
Develop a strong understanding of algorithms and data structures Learn about fundamental data types (stack, queues, and bags), sorting algorithms (quicksort, mergesort, heapsort), data structures (binary search trees, red-black trees, hash tables), and Big O.
Online resources:
  1. Introduction to Algorithms, MIT
  2. Algorithms Part 1 & Algorithms Part 2, Princeton, Coursera
  3. List of Algorithms, Wikipedia
  4. List of Data Structures Wikipedia
  5. Book: The Algorithm Design Manual, Steven S. Skiena
Develop a strong knowledge of operating systems Online resources:
Computer Science 162, UC Berkeley, YouTube
Learn artificial intelligence and machine learning Online resources:
  1. Machine Learning Engineer nanodegree, Udacity
  2. Deep Learning, Udacity
  3. Introduction to Robotics, Stanford University
  4. Machine Learning, Stanford University
Learn Android development Online resources:
Google Developer Training for Android, on Udacity
Learn web development Online resources:
Google Developer Training for Web, on Udacity
Learn other developer skills Online resources:
Google Developer Training site
Learn cryptography Online resources:
  1. Cryptography, Stanford, Coursera
  2. Applied Cryptography, Udacity
Work on projects outside of the classroom Create and maintain a website, build your own server, or build a robot.
Online resources:
  1. Capstone project: Analyzing (Social) Network Data - scroll down to bottom of page, UCSD, Coursera
  2. Capstone project: Java Programming: A DIY Version of Netflix and Amazon Recommendation Engines, Duke University, Coursera
  3. Project Directory, Apache
  4. Google Summer of Code Project Archive
Work on a small piece of a large system (codebase), read and understand existing code, track down documentation, and debug GitHub is a great way to read other people’s code or contribute to a project.
Online resources:
  1. GitHub®
  2. Kiln™
Work on projects with other programmers This will help you improve your ability to work well in a team and enable you to learn from others.
Practice your algorithmic knowledge and coding skills Practice your algorithmic knowledge through coding competitions like Code Jam or ACM’s International Collegiate Programming Contest.
Online resources:
  1. Code Jam
  2. Kickstart, a Code Jam competition, is for university students looking to develop their coding skills and pursue a Google career
  3. ACM ICPC
Become a teaching assistant Helping to teach other students will help enhance your knowledge of the subject matter.
Gain internship experience in software engineering Find Google’s internships in Engineering and Technology on our Students site.
Online resource to prepare to interview for software engineering positions, including for internships:
Mastering the Software Engineering Interview, UCSD, Coursera

Reference -  https://techdevguide.withgoogle.com/

Sunday, September 3, 2017

GitHub Education - GitHub Student Developer Pack

GitHub Education provides dozens of free resources from great companies to help students learn the latest tools and technologies. GitHub offers Student Developer Pack for free of cost. It helps students to get hands-on experience on real world tools cost is so high that you cannot pay it.That's why GitHub created the GitHub Student Developer Pack with some of their partners to give students free access to the best developer tools in one place so they can learn by doing without paying.

The best developer tools Student Developer Pack members get free of cost listed here.
Atom - 21st Century's hackable text editor. Free for everyone and it's Open Source supported by GitHub

AWS Educate - Student Developer Pack members receive up to $110 in bonus AWS credits for a total of $75-$150 with access to the AWS cloud, free training, and collaboration resources

Bitnami - Allows to install cloud applications in a single click with Business 3 plan (normally $49/month) free for one year.

CARTO - It is an open and powerful platform for spatial data analysis, visualization, and application creation. It's free account upgrades with increased database storage, real time data, Location Data Services Credits, and premium features for 2 years.
   
CrowdFlower - Allows you to access an online workforce to clean, label and enrich dataAccess to the Crowdflower platform

Datadog - Cloud-based infrastructure monitoring with Pro Account, including 10 servers and it is free for 2 years.

DigitalOcean - Simple cloud hosting, built for developers which offers $50 in platform credit for new users

Flatiron School -  Learn Web Development from the premier coding bootcamp for launching developers. Free one-month membership ($149 value) to Community-Powered Bootcamp.

GitHub - It is a Powerful collaboration, code review, and code management Offers Unlimited private repositories (normally $7/month) while you are a student.

GitKraken -  Git client for Windows, Mac and Linux offers Pro account for 1 user. Free for 1 year (normally $60/year).

HackHands -  Live programming help available 24/7 with $25 in platform credit

Microsoft Imagine - Offers  Microsoft Azure cloud services and the rest of the Microsoft developer tools while you’re a student

Namecheap - Offers One year SSL certificate (normally $9/year), One year domain name registration on the .me TLD (normally $18.99/year)

SendGrid -  Student plan 1500 free emails/month (normally limited to 200 free emails/day) while you're a student

Sentry - Allow you to track errors in every language, framework, and libraryOffers 500,000 events/month with unlimited projects and members while you're a student

Stripe -  Waived transaction fees on first $1000 in revenue processed on Web and mobile payments

Taplytics -  Complete access to the suite of tools(Dynamic A/B testing, smart push notifications and custom analytics) for native mobile apps and Unlimited access to the platform free for 6 months.

Thinkful - Offers one month of access to a web development course that will get you started with HTML/CSS, JavaScript, and developer tools. It includes access to online office hours with experienced developers for feedback on your work and help when you need.

Transifex - It is a localization platform that easily integrates with your code base which offers one year free of the Starter plan, a $99/month value. Get 50,000 hosted words, unlimited projects, and access to translation partners to bring your software to a global market from the start.

Travis CI -  Continuous integration platform for open source and private projects
which offers private builds (normally $69/month) while you're a student

Unreal Engine -  Access to complete suite of game development tools for PC, console, mobile, web and VRwhile you're a student

Eligibility requirements

  • You must be a student aged 13+ and enrolled in a degree or diploma granting course of study.
  • You must have a school-issued email address, valid student identification card, or other official proof of enrollment
If you meet the eligibility requirements, you can get GitHub Student Developer Pack here

Saturday, September 2, 2017

Learn Coding From Online

You must learn the basics of coding for communicating effectively with developers. You don't have attend the classroom training to learn basics of coding. Here I have listed resources available from the internet and you can learn everything from online using your internet browser.

LEARN CODING FROM THE WEB

HTML & CSS W3Schools, Code Academy, Code Avengers, Mozilla Webmaker, Site Point, The World Wide Web Consortium (W3C), activejump, Channel 9, HTML Dog, HTML5-Tutorial, Mozilla Developer Network, TutsPlus, Web Design Library, Web Platform, W3resource, Front End Rescue, Move The Web Forward, webdevRefinery, Stack Overflow, W3Fools
JavaScript Codecademy, Code school, Code Avengers, Didacto, MDN (Mozilla Developer Network), WebDevEdu/Google, Cody Lindley, Marijn Haverbeke, jsdares.com, appendTo 
JQuery Learn jQuery, Tutorialspoint, Codecademy, Learn.jQuery, Codeschool, Learningjquery
PHP Codecademy, Learn-PHP, Learn PHP playlist, PHPBuddy, 1Keydata, phptherightway, PHP cheatsheet
Python Codecademy, Learn python the hard way, Dataquest.io, The Python Tutorial
Ruby & Ruby on Rails Codecademy, Ruby Monk, Why’s Poignant Guide to Ruby, Learn Ruby the Hard Way, Rails for Zombies, Railscasts, Codewars, Ruby Koans
AngularJS Year of Moo, Codeacademy, Tutorialspoint , egghead.io, thinkster.io, Egghead ng-newsletter,Curran Kelleher
NodeJS Hackr.io, NodeSchool, Node.js Guide, Node Tuts, tutsplus, Web Development Bootcamp | Node Skills Course
GIT Pro Git, Git Immersion, Git Community Book, Git From the Bottom Up, Git Magic,
Easy Version Control with Git,Git in Action, A Visual Git Reference