PYTHON PROGRAMMING BASICS

May 10, 2019 0 Comments

           PYTHON PROGRAMMING BASICS

                          Down there it is embedded pdf of python

0 comments:

personal vpn on raspberry pi

May 10, 2019 0 Comments

Raspberry Pi with VPN on it can provide you with a stable and fast private network connection with the high level of mobility. How does it all work?
VPN ( or Virtual Private Network) helps you encrypt your connection and browse the Internet anonymously with a hidden IP to protect your privacy. And you would probably want to set up VPN on your Raspberry Pi to protect your privacy while surfing the Internet.
There are companies offering ready-to-use VPN services. They provide you with anonymous IP and encrypt your connection by routing your traffic through their servers. Unfortunately, many of VPN services aren’t available for Raspberry Pi. But ExaGear Desktop can help you with that.
Today we’ll tell you about Private Internet Access VPN Service. Although PIA doesn’t have an installer for Raspberry Pi you can use PIA and set up VPN on your RPi with the help of ExaGear Desktop. Below is a simple instruction on how to do that.
P.S.: you might also want to know how to run Google Chrome on Raspberry Pi

Raspberry Pi test stand configuration

ModelRaspberry Pi 2 Model BRaspberry Pi 3
Frequency1000 MHz1200 MHz
Memory1 GB RAM1 GB RAM
Operating SystemRaspbian Jessie from November 2015Raspbian Jessie from May 2016
Software

Private Internet Access for Linux
Eltechs ExaGear Desktop for Raspberry Pi 2
Private Internet Access for Linux
Eltechs ExaGear Desktop for Raspberry Pi 3

More information about Raspberry Pi models and the latest version of Jessie you can get on the Raspberry Pi foundation official website.

VPN setup instruction

Install ExaGear Desktop

1. Put ExaGear Desktop archive with installation packages and ExaGear Desktop license key in the same folder. Open Terminal (command line), move to this folder and unpack the archive by entering the following command:
$ tar -xvzpf exagear-desktop-rpi3.tar.gz
2. Install and activate ExaGear by running install-exagear.sh script:
$ sudo ./install-exagear.sh
That’s it.

Launch guest x86 system

3. Enter the guest x86 system by typing the following command:
$ exagear
Starting the shell in the guest image /opt/exagear/images/debian-8
You’re in x86 environment that can be checked by running the ‘arch’ command:
$ arch
i686
4. It is recommended to update apt-get repositories on the first launch of the guest system:
$ sudo apt-get update

Install Private Internet Access

5. Download Private Internet Access installer for Linux from the official site https://www.privateinternetaccess.com/installer/download_installer_linux using browser.
6. Unpack the downloaded archive in Terminal inside the guest system:
$ tar -xzvf Downloads/pia-*-installer-linux.tar.gz
7. Run Private Internet Access installer:
$ ./pia-*-installer-linux.sh
8. Install libraries required for PIA:
$ sudo apt-get install libnss3 libgconf-2-4 libasound2 libxtst6

Set up VPN

9. Run PIA by clicking on the launcher in Menu -> Other -> Private Internet Access and set up VPN.
 VPN client and router working on Raspberry Pi

Final notes

This way you can set up VPN not only on Raspberry Pi 2 or Raspberry Pi 3 but also on another ARM-based device such as Odroid, Banana Pi, Beagleboard, Cubox, Jetson, Cubieboard, etc. ExaGear Desktop supports almost all ARM devices and you can run PIA VPN service on any of them.
It is worth noting that with ExaGear Desktop you can run practically any x86 app on Raspberry Pi and other ARM-based devices.

0 comments:

Raspberry Pi NAS ultimate guide

May 10, 2019 0 Comments

Raspberry Pi NAS ultimate guide

The full installation tutorial on
how to build your own Raspberry Pi NAS server

How to make your own Raspberry Pi NAS systemBuilding NAS on Raspberry Pi is a very smart way to create DIY NAS for safe and efficient file management. NAS (or Network Attached Storage) Server is a network storage system to serve and share files with other client computers in a local network area. This enables multiple users to access and share the same file storage.
The NAS server can use different file sharing protocols to share the data via the network. The mainly used protocol is SMB (Server Message Block).
Additional protocols are NFS (Network File System), FTP (File Transfer Protocol), SFTP (Secure File Transfer Protocol), SCP (Secure Copy) and more.
The main hardware components of the NAS storage system are media storage devices, mainly hard drives. If you have more than one storage device mounted on your NAS server, the storage devices can be arranged via a RAID controller (Redundant Array of Independent Disks) into logical and redundant storage containers for redundancy and safety reason. There are various RAID levels to protect the data in case of a disk failure. The most common are RAID-0, RAID-1, and RAID-5.

Advantages of building NAS on Raspberry Pi

Raspberry Pi is a mini computer build on a single PCB board, slightly larger than a credit card. It has a wired local area network (LAN) and 4 USB-Ports for different external devices like keyboard and mouse or external storage devices.
The optimized operating system for the Raspberry Pi 2 and the Raspberry PI 3 is Raspbian, a free and open source software based on Debian. Also, there are a couple of alternative operating systems available for the Raspberry Pi. In this article, we will use the newest “Raspbian Stretch” operation system, released at 2017-08-16 with the Kernel version 4.9.
Well, concerning the advantages of making up Raspberry Pi NAS hosting device, RPI is a mini-computer with the full performance of a Linux-based operating system and contains almost all functions of a large server system.
On the other hand, the Raspi saves a lot of money because it’s really cheap and consumes a very small amount of energy. Due to its small size, the RPi can be placed almost everywhere as it occupies a very small space. RPi board can be used for an almost unlimited number of projects, like running Plex media server, playing retro games with a game emulator built on the Pi and much more.
All of that features make the Raspberry Pi an ideal candidate for your own small NAS storage system.

Setup a NAS Server on Raspberry Pi

In this article, we will set up a simple NAS server from scratch, based on the SMB protocol. The goal is to save files on the NAS server and share them between different computer clients. For this project, we’ll need a Raspberry Pi 2 or Pi3 with a running Rasbian and connected to some Network. Make sure you have access to the terminal or you’re logged in to the Raspberry Pi via SSH connection.
Need purely the algorithm alone? Try our short how-to guide! Simply provide your email and get instant access to the document.
For the file storage, we need an external USB Hard-drive with a storage capacity of your choice.

Prepare your RPi

Let’s assume that the Raspbian operating system is already installed and running on RPi. Connect your device to the Network via a wired connection or via WLAN and open a terminal.
Check if the Kernel Raspbian version is right for setting up NAS on RPi
On the first step, we need to make sure that all packages are of the latest version.
$ sudo apt-get update
If the Raspbian is up to date, we are ready to set up our NAS server.

Install and Setup Samba Server

1. To share files from our NAS server we need to install the Samba package. This includes all the required apps and configuration files to set up the SMB protocol.
$ sudo apt-get install samba samba-common-bin
2. After the installation, we need to configure the smb services. For that, we need to configure the sharing of an internal directory. For this case, we will create the directory and name it “INTERNAL” in the home path of our Pi user:
Configure Internal directory on Raspbian for NAS
3. Now open the /etc/samba/smb.conf file in an editor of your choice and enter the configuration options for the INTERNAL sharing at the end of the file like shown below.

[INTERNAL]
comment = internal Files
browseable = yes
path = /home/pi/INTERNAL
writeable = Yes
create mask = 0777
directory mask = 0777
browseable = Yes
public = yes

Bear it in your mind that the file must be modified under the root rights. Otherwise, the changes won’t be implemented. There is a very quick and simple way to open the file under the root:
$ sudo leafpad /etc/samba/smb.conf
You’ll see the editor window to input the data we’ve mentioned above.
4. After that, you need to get
access to the sharing, we’ve just created. For that, the user Pi should be allowed to be the Samba user.
$ sudo smbpasswd -a pi
Then, enter a password twice and restart the Samba server.
$ sudo /etc/init.d/samba restart
5. Now we are moving over to a Windows 7 client to check if the Samba server is configured correctly and we have access to our sharing directory.
On Windows open the Explorer and choose “Map network drive” from the Menu:
Check if the Samba server works properly for Raspberry Pi NAS project
In the dialog window, enter the IP-address of your Raspberry Pi and the configured share name “INTERNAL” as shown below.
Check the Samba within NAS on Raspberry Pi by entering the RPi IP address
Note: Be sure you replace the 192.168.17.73 with your own IP address and enable both ticks. Now enter the username “pi” and the password we’ve set up with the smbpasswd command earlier.
Enter the Samba username for Raspberry Pi NAS server setup
After that, we are connected with the Raspberry Pi and we can save and share our files.
Connect to Raspberry Pi for creating and sharing files with NAS on Raspbian
To make sure everything is OK, we can create a directory “Directory” and inside this directory, we can create a “Dokument.rtf” file. If all the operations are done and you can find this file, so our system is working the right way!
Create a file to test the Samba server for Raspberry Pi NAS project
Back to the Raspberry Pi sharing directory, we must also see the newly created files, like that:
Check the created test file in INTERNAL directory on Raspbian within the RPi NAS server project

Prepare an external drive

If we want to provide a larger amount of file space we connect an external USB drive to Raspberry Pi. In this tutorial, we are going to use a 1TB external USB HDD with an NTFS file system to expand our storage pool.
6. So, connect the external USB hard drive to the device. With the command lsblk, we can check all the connected devices.
Check the devices connected to NAS on Raspberry
As you see above, the mmcblk0 device is the SD card which contains two partitions for the Raspbian operating system. The sda device is the external USB disk already connected to the RasPi. As we can see, the sda device contains one partition sda1 with a size of 931.5 Gb. The sda1 partition contains an NTFS file system.
7. To mount this file system we need to install the “ntfs-3g” package.
$ sudo apt-get install ntfs-3g
8. The next step is to create an “EXTERNAL” folder:
$ sudo mkdir /EXTERNAL
So, I should mention one important thing in this step. It looks like the latest models of Raspberry Pi 2 and Raspberry Pi 3 can automatically mount the devices. According to my personal experience, once an HDD is connected, the Raspbian creates a folder with a name “New Folder” or alike and mounts your device to it. If you face the same, simply fulfill the following command to unmount the device from the needless folder:
$ sudo umount /media/pi/New\ Folder/
If it is done, we can mount the external drive to the new directory.
Mount the external drive to your NAS on Raspberry Pi
9. To automatically mount an HDD to the system, we have to modify the /etc/fstab file. For that, I advise to use the root command mentioned before to open up the file:
$ sudo leafpad /etc/fstab
In the editor, input the data outlined in the picture below:
Modify the fstab for your Raspberry Pi NAS system
10. Now we have to reboot and check if the external disk was mounted automatically.
Check if the RPi NAS external disk has been mounted
As you can see above, the external hard drive partition /dev/sda1 is already mounted to the EXTERNAL mount point. For testing purposes, we can create a directory and a file inside the EXTERNAL directory.
Testing the Raspbian NAS

Create an external share

Now we are ready to share the external disk to the network.
1. For that, firstly, we have to add the following configuration part to the end of /etc/samba/smb.conf file. Don’t forget to use the special command for opening the file:
$ sudo leafpad /etc/samba/smb.conf
As soon as the file opens up, copy the data set below:
[EXTERNAL]
comment = external Files
browseable = yes
path = /EXTERNAL
writeable = Yes
create mask = 0777
directory mask = 0777
browseable = Yes
public = yes

2. Then, we can restart the Samba server.

$ sudo /etc/init.d/samba restart

3. On the next step, we’ll move over to a Windows 7 client to check if the external share is also available in the Network. As described earlier, we map the external sharing in the same way, with the “EXTERNAL” instead of “INTERNAL” sharing name.
Checking the external share of the DIY Raspberry Pi NAS server
Now we can see the external sharing directory with the test file “external.file” inside.
Check your own NAS on Raspberry Pi by finding the external file in the right directory
If the result is as described and shown on the last picture, so you’re all set with your own and stable universal Raspberry Pi NAS system, ready to use for any purpose of your choice!

Other Alternatives for NAS Server on Raspberry

As an alternative to your own NAS, you can use ready built NAS storage server applications like Openmediavault, Freenas, Nas4free, and others. These application packages are easy to install and comes with a Web-Interface to configure. They are made for managing the storage and file sharing to other users within the Network.

Openmediavault as a NAS alternative on Raspberry Pi

As the first alternative, let’s look through the Openmediavault service. This is a web based NAS service for Debian Linux (Jessie) devices, including the Raspberry Pi ones. For the RPi option, there is a Raspberry Pi 3 image (download from here). As soon as you have it on your device, the installation process is pretty simple.
  1. Download the Raspberry Pi 3 NAS image (using the link above).
  2. Create an SD card for Raspbian with the proper OMV image on it. For that, we can use the Win32DiskImager app just the same way, as we have used it for setting up Raspberry Pi Backup.
  3. Insert the SD card into your Raspbian device and watch the configuration to be completed automatically.
  4. To finish the setup, input your Raspberry Pi IP address.
  5. After that, connect to the IP address you’ve provided in the previous step via Chromium browser (or whatever you use on your Pi).
  6. Set up the username and the password (the username is “admin” by default).
  7. The interface is quite user-friendly, so you’ll be able to add your hard drive by purely following the guidelines.
  8. Don’t forget to enable the service by entering the SMB/CIFS directory and pushing the switch-on button.
  9. You can also enable the guest access in the “Shares” directory (it’s optional).
  10. Then… You’re done!
Nas4Free as an alternative RPi based NAS

Another service to your consideration is Nas4Free. Generally, this app is very close to the OMV we’ve just described. The only thing is that the installation process a little bit simpler and faster, to my opinion. Nas4Free has almost the same features and capabilities. To set up Nas4Free on your Raspbian, follow these few simple steps:
  1. Download the latest image. I’d advise you to choose “NAS4Free-rpi2-SD-10.3.0.3.4529.img” (download the image).
  2. Create an SD card with the image on it. Use Win32DiskImager and the same example guide we’ve mentioned earlier.
  3. Insert the SD card into your Raspbian device and let the installation run automatically.
  4. To finish the setup, input your Raspberry Pi IP address.
  5. You are all set!
While using Nas4Free with on RPi remember 2 simple notes. Firstly, the image of 11.x will is released only for RPi2 and 3. And secondly, it is highly recommended to overclock your Raspberry Pi from 600 MHz to 900 MHz. For that, you need to enable the Power Daemon in the System|Advanced settings of your Raspberry Pi.
FreeNAS as an alternative for NAS on Raspberry
For the last thing, I’d like to say a few words about FreeNAS, as another alternative for RPi NAS. It is an online Open Source and BSD Licensed service for sharing and storing files using any hardware platform, including ARM-based devices.
Telling the truth, Freenas is considered to be not the best variant for building up NAS on Raspberry. This is not only personal opinion, but the community thinks the same (check the StackExchange thread here). In a nutshell, FreeNAS is aimed to be used within really big (even huge) projects and requires a powerful computer. The 8GB of RAM is required for the FreeNAS 11 to be run properly, which, obviously, can’t be met by even the latest 2017 model of Raspberry Pi (you can make sure on their download page).
Still, there is a common way to install FreeNAS on Raspberry Pi using the combination of ExaGear and Wine, but even the 3D hardware graphics acceleration, provided by ExaGear Desktop, won’t get you acceptable performance. Anyway, you are free to try that scheme. For that use the tutorial described in the article Wine on Raspberry Pi (or you may find Raspberry Pi Owncloud tutorial relatively closer).

Final notes

In conclusion, we have gained a lot of information on different ways of making up your own NAS on the Raspberry Pi devices (or implement the same to any AMR-based hardware). Obviously, there are a lot of pros as well as cons at the same time of using NAS on Raspberry Pi.
The great advantages of Raspberry Pi are its very small size, cheap price(less than 40 USD) and very little energy consumption device. Disadvantages include the fact, that hard drives can only be connected via USB interface and have a possibility of a performance loss compared to hard drives running over SATA. Also, the setting up RAID over USB HDDs is not recommended as this type of devices are very error sensitive.
You can further expand the storage capabilities of the RPi by adding cloud services like Google Drive or Dropbox on Raspbian with the help of ExaGear Desktop. Using Dropbox on Raspbian or any other ARM (set up on with ExaGear) for the purpose of building up the NAS system have a number of advantages:
  1. You can synchronize the data between different devices, using multiple ARM boards, or even use them the cross-platform way (x86 + ARM).
  2. Your data and files are accessible from anywhere in the world, as this is a cloud service.
  3. With Dropbox, it’s possible to set up a backup for your Raspberry Pi NAS system
  4. You can get the history of changes because Dropbox backs up files several times a day keeping all the versions of files saved.
  5. Dropbox itself provides great customer technical support.
Connect your RPi to Dropbox to make your own NAS on Raspberry Pi better
Moreover, accompanied by ExaGear Desktop software, you have the possibility to save data from anywhere to any type of an ARM device (including, but not limited to Raspberry Pi, Odroid, Banana Pi, Beagleboard, Cubox, Jetson, Cubieboard and many others).

                                            Learn more about ExaGear Desktop

0 comments:

google smtp

May 10, 2019 0 Comments

Use free google smtp server and get the mail in primary section


Google SMTP Server – How to Send Emails for Free


Google SMTP Server – How to Send Emails for Free

Google's Gmail SMTP server is a free SMTP service which anyone who has a Gmail account can use to send emails. You can use it with personal emails, or even with your website if you are sending emails for things such as contact forms, newsletter blasts, or notifications.
To use Gmail's SMTP server, you will need the following settings for your outgoing emails:
  • Outgoing Mail (SMTP) Server: smtp.gmail.com
  • Use Authentication: Yes
  • Use Secure Connection: Yes (TLS or SSL depending on your mail client/website SMTP plugin)
  • Username: your Gmail account (e.g. user@gmail.com)
  • Password: your Gmail password
  • Port: 465 (SSL required) or 587 (TLS required)

You find this article useful? Click here to learn more about SiteGround Premium web hosting for free experts and what else we can do for you!

0 comments:


how to become an ethical hacker ?

2 comments:

Top 3 Ethical Hacking Certifications For your Cyber Security Career by sinhcoms

0 comments:

Bitcoin worth of $40 million hacked by hacker

May 09, 2019 , , 0 Comments





Hackers More Than $40 Million Stolen in Bitcoin - Binance Hacked
  • By Nayan Sinha
  •  Binance Hacked, CEH certification, CEH Training, ethical hacking training, Hacker Hacks Bitcoin, hacking attacks, Hacking From Binance, hacking training, learn hacking skills

Hackers proved it no system is secure "every system is hackable and exploitable"

0 comments:

Migrating to https from http Redirecting HTTP to HTTPS Using .htaccess File:

Redirecting HTTP to HTTPS Using .htaccess File: Step by Step

  Redirecting HTTP to HTTPS Using .htaccess File: Step by Step

Chrome and Firefox have started showing insecure warnings on sites without SSL certificates. Without SSL, your website will show insecure to the visitors. Therefore, using an SSL-encrypted connection for safety, accessibility or PCI compliance reasons is necessary. It becomes very important to redirect from HTTP to HTTPS.
Read about Google Forcing SSl
In order to force your web traffic to use HTTPS, edit the codes in the .htaccess file. Before we move onto redirecting HTTP to HTTPS, here’s how you can edit .htaccess file. If you already know skip to Redirection steps.

Editing .htaccess File

There are instructions/directives in the .htaccess file that tell the server how to act in certain scenarios and directly affects how your website functions. Common directives in .htaccess file:
  • Redirects
  • Rewriting URLs
Ways to edit an .htaccess file:
  1. Edit the file on your computer and upload it to the server using FTP.
  2. Use “Edit” mode in FTP program that allows you to edit a file remotely.
  3. Use a text editor and SSH to edit the file.
  4. Use the File Manager in cPanel to edit the file.
  magento security

Editing .htaccess in cPanel File Manager

Note: Backup your website in case something goes wrong.
  1. Login to cPanel
  2. Files > File Manager > Document Root for:
  3. Now select the domain name you want to access
  4. Check “Show Hidden Files (dotfiles)”
  5. Click “Go”
  6. After a new tab or window opens, look for the .htaccess file.
  7. Right click on the .htaccess file and click on “Code Edit” on the menu.
  8. A dialogue box may pop up asking about encoding. Click the “Edit” button to continue.
  9. Edit the file
  10. “Save Changes” when done.
  11. Test your website to make sure it is done correctly. In case, there is an error, restore to the previous version and try again.
  12. Once you are done, click “Close” to close the window.

Redirecting HTTP to HTTPS

1. Redirect All Web Traffic

If you have existing code in your .htaccess, add the following:
RewriteEngine On 
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.yourdomain.com/$1 [R,L]

2. Redirect Only a Specific Domain

For redirecting a specific domain to use HTTPS, add the following:
RewriteEngine On 
RewriteCond %{HTTP_HOST} ^yourdomain\.com [NC]
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.yourdomain.com/$1 [R,L]

3. Redirect Only a Specific Folder

Redirecting to HTTPS on a specific folder, add the following:
RewriteEngine On 
RewriteCond %{SERVER_PORT} 80
RewriteCond %{REQUEST_URI} folder
RewriteRule ^(.*)$ https://www.yourdomain.com/folder/$1 [R,L]
Note: Replace “yourdomain” with your actual domain name wherever required. Also, in case of the folder, replace /folder with the actual folder name.
Think it was useful? Share this article to help them come on HTTPS ????
For any futher questions please write to us at @Support

0 comments:

Free rar pro for lifetime / win rar pro free


https://sinhcoms.online

                              #SINHCOMS

HERE YOU WILL GET THE CRACKED VERSION OF WinRar
FOR FREE. SELECT ACCORDING TO YOUR BUILD WE HAVE 32BIT && 64BIT BUILD AVAILABLE.


i) 64bit BUILD:  winrar-x64.exe - 3187440

ii)32bit BUID:     winrar-x32.exe - 2964288

FOR ANY HELP: CLICK THIS

0 comments:

Free Whmcs 7.4 nulled

May 06, 2019 0 Comments

                                  WHMCS

Get whmcs 7.4.1 absolutely free and 

if you want latest 7.7.1 please pay me                                                                             Rupees    500. 

for the whmcs 7.7.1 follow this link --------------->>>>>> Free Download from here

for the whmcs 7.7.1 follow this link --------------->>>>>> Pay and Download from here

 (₹500)only one time 

Some of its features are---->
                                                

        


         Save Time

WHMCS takes care of automating things so you don't have to, saving you valuable time and money.
                                                 

Automate Billing

Sending invoices, collecting payments, taxes, reminders and more are all a thing of the past with WHMCS.

                                                      

Web & Domains

Integrated with all the leading web hosting control panels and domain registrars for automatic provisioning and management.


                                                        

Support Tools

Integrated support tools give you a client portal complete with ticketing, knowledgebase, downloads and more.
                                                        

Developer Friendly

Modular, extensible, well documented API's and ORM all make developing with and customising WHMCS easy.
                                                        


Secure & Scalable

WHMCS is a secure, dependable and scalable solution designed for businesses of all sizes and backed by an awesome support team.







WHMCS help those who are using reseller panel without whmcs and looking for whmcs as it reduces the effort and time but it is costly at the same time . so i have the solution for you just before some day I got to see my old hard drives and i started to look into the disk what's in there so I found few software and nulled cms including whmcs 7.1.1 that is 8 months old version.



As before few days I learned malware and nulled software used in the field  of hacking and penetration testing .so I applied the same method on the WHMCS to get it nulled and by grace I was successfully so , I decided to download the latest version that is( 7.7.1 ) as a trail and tied to crack it down I got the success in the 7.7.1 also its all working fine enter any license keys and then you are good to go.


for the  whmcs 7.4.1 follow this link --------------->>>>>>Download for free from here

for the whmcs 7.7.1 follow this link --------------->>>>>> Download from here (₹500 ) only

0 comments:

Why one should learn python


Why Learn Python

In this article, we're going to talk about why you should learn python right now.
You know what I really hate?
Technical articles aimed at programmers that explain why you should do something where the author doesn’t draw on any personal experience.
Seriously — how can you trust someone who has never been in the trenches, fought the war, or come home battle-scarred but victorious?
I took a different approach when putting together this article and wrote something I believe other programmers like myself would want to hear:
Seven real, personal stories about the Python programming language and how it helped me in my career.
I’m not here to evangelize for Python.
I’m not here to tell you that Python is the “best programming language” (whatever that means).
I’m not even going to tell you to “try” building your next project in Python because I have no idea what your next project is and whether or not Python would be a good fit for it.
Instead, my goal is to relate to you as a programmer. I’m going to share some personal stories from my career as a programmer and I hope that you’ll see why you should learn Python.
If you stick around and read through the rest of this article, I think you’ll come to the same conclusion I did years ago — Python is going to make an impact on your future, whether you realize it or not. So I hope you'll see why you should learn Python.
With that said, let’s dive in.

#1. First-time programmer? Learn Python quickly.


I remember when I started my journey to becoming a software developer over 2 years ago.
I was just a kid, maybe 15 years old at most.
Andrew, a childhood friend of mine, introduced me to the world of computers and showed me how they could do much more than just connect to the internet and access websites.
He showed me the basics of HTML and how websites were actually built using “tags” and a basic markup language.
From there on, I was addicted.
The unbridled level of control. The freedom of a creator. The canvas of an artist. I was a programmer in the making.
The next morning I pleaded with my mom to drive me to the local library so I could learn more about computer programming.
Perhaps unsurprisingly, the first book I reached for had the word “BASIC” in the title. For a beginner, the name alone pulls you in.
Over the summer (and with the help of Andrew), I used that book to learn the fundamentals of programming, basic control structures, and how to organize a program.
But at the end of the day, I felt sorely disappointed — and I almost gave up programming altogether come the start of school in autumn.
How come?
I couldn’t do anything “cool” with BASIC — the language, by its very nature, was extremely limiting and constrictive (ironic, since I now use Python, named after a snake that squeezes and crushes its prey before eating it).
I couldn’t access low-level system resources.
I couldn’t load and manipulate images.
And any type of statistics or computational analysis?
Forget about it.
I spent all that time learning how to program, but I didn’t really have anything to show for it.
All that said, I forged ahead. I realized my programming “career” didn’t have to stop at BASIC.
During my freshman year of high school, I moved on to C/C++. It was a much harder language that took me a while to become proficient at. I also really enjoyed the freedom that C gave me, even if it meant shooting myself in the foot from time-to-time.
After C/C++ I moved on to Java and object-oriented programming. That was fun, but it felt like it took an eternity to get anything done.
By the end of my sophomore year of high school, I had tried scripting languages for the first time: specifically, Python.
I was amazed.
The code was easily readable — almost like writing rudimentary English or simple abstract mathematics.
There was also an object-oriented flavor to the code itself. Not to an extreme like in Java, just enough of a sprinkle to make me feel like it was an old friend — there when I needed it.
Perhaps most surprising was how elegant my code looked.
The use of whitespace ensured my code was organized coherently into tidy little blocks. And by following basic coding standards and suggestions, I was writing beautiful looking, easily maintainable code by the end of my first day using the language.
In retrospect, I wish I could have started with Python.
Sure, BASIC taught me the fundamentals of programming, but Python can do that, too, in the same, simple manner.
If I had to turn back the clock, I would have skipped BASIC altogether and gone right to Python. I would have enjoyed the experience more, gotten a better investment return on my time, and been better prepared to learn C/C++ and Java.
So if you're trying to decide on the best programming language to learn, Python deserves a serious look.

#2. Python is used for web development.


I’ll admit it:
When I first started writing web applications, I wasn’t using Python — I was using PHP.
In fact, I was so fond of PHP that I wouldn’t even consider the possibility that another programming language might be better for web development.
I was wrong.
Dead wrong.
It wasn’t until my friend Patrick showed me the Python web framework Django that my mind changed for good.
What once took me hours in PHP could be done in minutes using Python.
Not to mention the fact that my code was a lot faster and more stable.
From Django, I moved on to Flask, another web framework, but tiny and built for customizability.
Once I started working with Django and Flask, I never looked back to PHP.
While the majority of websites still run on PHP, many new web applications are being built using Python.
If you’re planning on doing any web application development, give Python and Django/Flask a try. I think you’ll be quite impressed.

#3. Iterative, Agile Design.

Success in startup companies does not come overnight.
Instead, it comes from a series of iterations that often look like this:
  1. Find out what the (potential) customer wants/needs.
  2. Build the Minimum Viable Product (i.e., the smallest possible set of features that solves the customer’s problem).
  3. Show it to the customer.
  4. Repeat the process until the customer is happy.
This process allows startups to “stair step” their way to success. Start with an idea, then refine the idea and product until you’ve “made it.”
In the online world, Python is ideal for this process.
The language allows you to code quickly, building complex applications with minimal lines of code (5x less than Java and 10x less than C++).
Going from idea to implementation quickly is critical in the startup world, so if you are interested in working with startup companies, I highly suggest you learn Python.
Personally, I’ve been working in startup companies since I was 18 years old.
Whether the particular product was web-based, mobile, or enterprise, Python eventually found its way into the company, either as part of the core product or as a supporting utility. I have no doubt this trend will continue in the future.

#4. High Salaries.

In a 2016 developer salary study created by indeed.com and published by codementor.io, it was found that the average Python developer salary was $107,000 USD:
                                               python
Based on this study, Swift, Python, Ruby, C++, and Java will make you the most money (with PHP rounding out the bottom).
Given the monetization of mobile applications, perhaps it’s unsurprising to see Swift at the top of the list, as it’s typically used for developing iOS and macOS applications.
But just below Swift is Python and Ruby: the only two scripting languages in the top five.
While Ruby is a general-purpose programming language and is used for a good many applications when polling a set of Ruby developers, more times than not you’ll find that they are using Ruby for web development.
Python, on the other hand, is different: it’s more diverse.
Don’t get me wrong, you’ll undoubtedly see many programmers using Python for web development, but you’ll also see Python powering scientific applications as well.
Drawing from my own personal experience, I can tell you that I followed this exact totem pole of salaries.
When I was working as a PHP developer, I was making the least amount of money in my career.
I then moved on to Java and enterprise development where I enjoyed a significant bump.
But the real change for me didn’t happen until I started working in the computer science Python community.
While this is strictly an anecdotal opinion, I truthfully believe that Python opens more doors than Ruby does, especially from a scientific standpoint.
My prediction is that given the rise of Python as not only a general-purpose programming language but also as a scientific programming language, we’ll soon see Python take over Ruby in terms of higher salaries.

#5. Python Security.

Five months ago a gym buddy of mine introduced me to his son, Sean.
Sean had just graduated from high school and was heading off to the University of Chicago come the fall semester.
Curious about his major, I asked Sean what he was planning on studying.
His response?
Cybersecurity.
It’s a great field to be in and there’s lots of money to be made.
Think about it — being involved in cybersecurity has many parallels to operating a business designed around morgues and funeral homes.
It may be macabre, but people will continue to die; there’s no chance of funeral home businesses stagnating unless we magically find the elixir of life.
Similarly, there will no shortage of cyber attacks. There’s even speculation that the next World War will be won and lost in cyberspace rather than through the actions of troops on the ground.
Sean told me about his high school’s programming classes, how he took two years of Java, object-oriented programming and software design.
While I was impressed that his training even had two years’ worth of programming courses, I was a little saddened to hear they weren’t teaching any scripting languages.
Over Christmas break, I caught up with Sean and asked him how he was enjoying the University of Chicago.
He was doing great.
He was rocking all his computer science classes.
He joined the school’s cybersecurity team…
…and he even learned Python along the way.
Grinning, because I already knew the answer, I asked him: “What made you learn Python?”
He replied back, “It’s just so easy, man! You can do literally anything with Python. When I first joined the cybersecurity team, I was writing penetration testers with Java. It took me hours to code what my peers were doing in minutes.”
Sean had realized the power of scripting languages.
While you may sacrifice some execution speed, you gain more flexibility, facility in writing code, and — best of all — the ability to experiment faster.
My opinion is that Python includes the best of all these worlds. If you haven’t tried it yet, you really should.

#6. Python is the future of AI and Machine Learning.                                         

The Python programming language is currently fueling scientific programming, but this wasn’t always the case.
For years academic scholars and private researchers were using the MATLAB language for scientific research.
That all started to change with the release of Python numerical computation engines such as NumPy and SciPy, allowing complex calculations to be done by a single “import” statement followed by a function call.
Slowly but surely, Python started to take over as the preferred language for computer science research.
In fact, I wrote all of the code used to gather results for my Ph.D. dissertation in Python.
By the time I graduated with my bachelor’s degree, even non-computer science students had started to teach themselves Python and use it to power their own research. Computational biology is a great example of where you’ll see non-computer scientists leveraging Python.
These days I spend much more time writing scientific Python code than I do anything else, so I’m clearly biased, but I can tell you this:
Python is the future of Artificial Intelligence.
Given the flexibility of the language, its speed, and the machine learning functionality delivered by libraries such as scikit-learn, Keras, and TensorFlow, we’ll continue to see Python dominate the machine learning landscape.
There is no doubt in my mind: if you are even remotely interested in doing computer science research, you should learn Python.

#7. Diversity and Flexibility.

Over this past summer, I set up my first 401k.
I chatted with my financial advisor on a number of occasions, discussing various investment vehicles and strategies, and different methods to allocate my portfolio.
No matter how the conversation started, it always ended up in the same place:
Managing my risk, and more specifically, how to minimize it.
In the investment world, this simply boils down to “not putting all your eggs in the same basket.” If you drop your basket, you crack all your eggs.
Your goal, therefore, is diversification: put a chunk of your money into large company stocks, another (smaller) chunk into small/mid-size company stocks, then another chunk into bonds, and finally any remainder into foreign markets, precious metals, etc.
Makes sense, right?
If you put all your money into stocks and the market crashes again like in 2008, your retirement portfolio would be entirely crushed. By diversifying, you minimize your risk.
Believe it or not, the programming world isn’t so different.
Over the past decade, it’s become increasingly valuable to have a programming specialization, but you have to be careful not to pigeonhole yourself as “that Java guy” or “that C++ guy.”
While it’s extremely important to have a niche and specialty, you also need to make yourself marketable.
For example, I’m a programmer, and I specialize in computer vision and machine learning.
However, I’m not just a “Python guy” or an “OpenCV guy.”
I’ve used Java to build large-scale enterprise and government applications.
I’ve utilized C++ to work on real-time applications.
I’ve even custom-built PHP applications to scale to hundreds of thousands of users.
My point is this: my resume and curriculum vitae are Diversified.
I have a niche and know my niche well, but I can also take on just about any other task.
If you don’t have Python under your belt, consider adding it to your repertoire and increasing your diversification and marketability as a programmer.

0 comments: