SlideShare a Scribd company logo
1 of 49
Building yourself with
Python - Learn the Basics!!
Franklin Oduro.
Pycon Ghana 2018
@_afroprogrammer
This talk is for you if:
If you are a python beginner or completely new to programing
languages
If you want to know basic python principles like: variables, syntax,
data structure, tools and control structures.
If you are coming to python from another language
@_afroprogrammer
My Story (Quick Version)
@_afroprogrammer
 Quit my lame job
Learned python
Followed a system
Improved my python skills
So
Why
Python?
@_afroprogrammer
Beginner friendly
Easy to understand:
Being a very high level language, Python reads like English, which takes
a lot of syntax-learning stress off coding beginners.
@_afroprogrammer
WHICH WOULD YOU BE ENCOURAGED TO LEARN
QUICKLY:
OOR
@_afroprogrammer
Very flexible:
Python is really flexible. This means there are no hard rules
on how to build features, and you'll have more flexibility
solving problems using different methods.
@_afroprogrammer
Beginner friendly
@_afroprogrammer
Beginner friendly
Extensive support Libraries: Python provides a large standard
library which includes areas like internet protocols, string
operations, web services tools and operating system interfaces.
COMMUNITY
3th Most-Used Language at GitHub: Over 950 Python projects have
over 500 stars. With 744,045 pull requests which is an increase of
54% as compared to last year. Info from https://octoverse.github.com/
3rd Largest Meetup Community: There are 1300+ Python
groups on Meetup.com, totaling 608k+ members.
5th Largest StackOverflow Community: Python has 85.9k followers,
with over 500k Python questions.
@_afroprogrammer
On Angel List, Python is the 2nd most demanded skill and
also the skill with the highest average salary offered.
Salary information from https://gooroo.io/
@_afroprogrammer
Career Opportunities
neuroscience
media storage and processing
payment systems
web services
operations management
@_afroprogrammer
Career Opportunities
Career Opportunities
Big Data
telephony infrastructure
numerical analysis and engineering
animation
gaming backends
natural language processing
Just to name a few
@_afroprogrammer
@_afroprogrammer
So
Why
Python?
@_afroprogrammer
Information from https://www.quora.com/What-top-tier-companies-use-Python
@_afroprogrammer
Meet Joe
@_afroprogrammer
@_afroprogrammer
Joe
Learn
the
Basics!!
@_afroprogrammer
The basic concept includes:
Variables
Control structures
Data structures
Syntax
Tools
@_afroprogrammer
Variables
In computer programming, a variable is a storage location and an
associated symbolic name which contains some known or unknown
quantity or information, a value.
@_afroprogrammer
yourName = str(input(“What is your name: “))
Print(“welcome back”, yourName)
Variables
String
Integer
Float
Variables
The output is
@_afroprogrammer
Variables
Strings
(i.e. “kojo” and “kofi”)
(“i.e. ”kojo” - “kofi”)
Integer
(i.e. 22 and 3 )
(i.e. 22 + 3 = 25)
Strings
(i.e. “22” and “3”)
(“i.e. ”22” + “3” = “223”)
Strings
(i.e. “Hello” and “World”)
(“Hello” + “World”) = “Hello world”
@_afroprogrammer
@_afroprogrammer
Choosing a
variable Name
So, Variable types are also a powerful thing, and they help us to make
sense of what we CAN do with our variables and what we CANNOT
do!
Variables
@_afroprogrammer
Control structure
A control structure is a block of programming that analyzes
variables and chooses a direction in which to go based on given
parameters. The term flow control details the direction the program
takes (which way program control “flows”). Hence it is the basic
decision-making process in computing; flow control determines
how a computer will respond when given certain conditions and
parameters
@_afroprogrammer
Control structure
 if control
@_afroprogrammer
Control structure
 While control
@_afroprogrammer
So, without control structures, your program’s code would
only flow in one way, and it would essentially only do one
thing over and over again, which wouldn’t be very
helpful. Changing what the code does based on a variable
is what makes programs useful to us all!
Control structure
@_afroprogrammer
Data structure
In computer science, a data structure is a particular way of storing
and organizing data in a computer so that it can be used efficiently.
@_afroprogrammer
Data structure
Wrong / inefficient way:
@_afroprogrammer
Data structure
The sheer amount of text that you’ll need to write in your program
 The flexibility of code
If we need to add another contact, we wouldn’t be able to do it
without manually editing our code.
@_afroprogrammer
Data structure
So what's the right way/ efficient way?
PYTHON LIST
@_afroprogrammer
Data structure
contacts = [“ kweku snow(kojo@gmail.com)”, “kojo sowu(kojo@gmail.com)”]
contacts.append (“kojo(johnsnow@gmail.com)”)
@_afroprogrammer
PYTHON LIST:
Data structure
Dictionaries:
@_afroprogrammer
Data structure
A data structure is a way of storing and organizing data in such
a way that it can be used efficiently.
@_afroprogrammer
Syntax
In computer science, the syntax of a programming language is
the set of rules that define the combinations of symbols that are
considered to be correctly structured programs in that language.
@_afroprogrammer
Syntax
forsonfranklin@gmail.com
_ .
forsonfranklin @
Website domain
gmail.com
@_afroprogrammer
www.learnpythonbasics.com
Not
Syntax
Syntax in python
Lines and indentation
Comments in Python
Quotation in Python
@_afroprogrammer
Syntax
Lines and indentation
@_afroprogrammer
Syntax
QUOTATIONS IN PYTHON
@_afroprogrammer
COMMENTS IN PYTHON
Syntax
@_afroprogrammer
TOOLS
In the real world, a tool is something (usually a physical object) that
allows you to get a certain job done in a more timely manner
TEXT EDITORS /SOURCE CODE EDITORS
IDE (INTEGRATED DEVELOPMENT ENVIROMENT)
@_afroprogrammer
TOOLS
SOME TEXT EDITORS AND SOURCE CODE EDITORS THAT SUPPORT
PYTHON
TOOLS
DEBUGGING FUNCTIONALITY:
Debugging functionalities of ide’s don’t just correct errors but also
means for learning new things in python
@_afroprogrammer
REASONS TO CHOOSE PYTHON
BGINNER FRIENDLY
CAREER OPPORTUNITIES
COMMUNITY
@_afroprogrammer
LEARN THE BASICS!!
VARIABLES
CONTROL STRUCTURE
DATA STRUCTURES
SYNTAX
TOOLS @_afroprogrammer
“If you are a beginner in development, and you feel bad about not
knowing everything. There is one thing I want you to realize: No one
knows EVERYTHING. Developer greatness is achieved by having the
growth mindset. By working hard, practicing the right habits and
drilling the basics into yourself, you can achieve that software
developer greatness you ever dreamt of.”
- Franklin Oduro (me)
@_afroprogrammer

More Related Content

What's hot

Prolog (present)
Prolog (present) Prolog (present)
Prolog (present)
Melody Joey
 
Moore_slides.ppt
Moore_slides.pptMoore_slides.ppt
Moore_slides.ppt
butest
 
Optimizing multilingual search in SOLR
Optimizing multilingual search in SOLROptimizing multilingual search in SOLR
Optimizing multilingual search in SOLR
Basis Technology
 
An-Exploration-of-scientific-literature-using-Natural-Language-Processing
An-Exploration-of-scientific-literature-using-Natural-Language-ProcessingAn-Exploration-of-scientific-literature-using-Natural-Language-Processing
An-Exploration-of-scientific-literature-using-Natural-Language-Processing
Theodore J. LaGrow
 
Cross language information retrieval (clir)slide
Cross language information retrieval (clir)slideCross language information retrieval (clir)slide
Cross language information retrieval (clir)slide
Mohd Iqbal Al-farabi
 

What's hot (20)

Crash Course in Natural Language Processing (2016)
Crash Course in Natural Language Processing (2016)Crash Course in Natural Language Processing (2016)
Crash Course in Natural Language Processing (2016)
 
OpenNLP demo
OpenNLP demoOpenNLP demo
OpenNLP demo
 
Prolog (present)
Prolog (present) Prolog (present)
Prolog (present)
 
NLP and LSA getting started
NLP and LSA getting startedNLP and LSA getting started
NLP and LSA getting started
 
Quepy
QuepyQuepy
Quepy
 
XML Retrieval - A Slot Filling Approach
XML Retrieval - A Slot Filling ApproachXML Retrieval - A Slot Filling Approach
XML Retrieval - A Slot Filling Approach
 
HackYale - Natural Language Processing (Week 1)
HackYale - Natural Language Processing (Week 1)HackYale - Natural Language Processing (Week 1)
HackYale - Natural Language Processing (Week 1)
 
What can corpus software do? Routledge chpt 11
 What can corpus software do? Routledge chpt 11 What can corpus software do? Routledge chpt 11
What can corpus software do? Routledge chpt 11
 
Can functional programming be liberated from static typing?
Can functional programming be liberated from static typing?Can functional programming be liberated from static typing?
Can functional programming be liberated from static typing?
 
Semantic & Multilingual Strategies in Lucene/Solr: Presented by Trey Grainger...
Semantic & Multilingual Strategies in Lucene/Solr: Presented by Trey Grainger...Semantic & Multilingual Strategies in Lucene/Solr: Presented by Trey Grainger...
Semantic & Multilingual Strategies in Lucene/Solr: Presented by Trey Grainger...
 
Elements of Text Mining Part - I
Elements of Text Mining Part - IElements of Text Mining Part - I
Elements of Text Mining Part - I
 
Moore_slides.ppt
Moore_slides.pptMoore_slides.ppt
Moore_slides.ppt
 
Lecture: Summarization
Lecture: SummarizationLecture: Summarization
Lecture: Summarization
 
Using OpenNLP with Solr to improve search relevance and to extract named enti...
Using OpenNLP with Solr to improve search relevance and to extract named enti...Using OpenNLP with Solr to improve search relevance and to extract named enti...
Using OpenNLP with Solr to improve search relevance and to extract named enti...
 
Optimizing multilingual search in SOLR
Optimizing multilingual search in SOLROptimizing multilingual search in SOLR
Optimizing multilingual search in SOLR
 
HackYale - Natural Language Processing (Week 0)
HackYale - Natural Language Processing (Week 0)HackYale - Natural Language Processing (Week 0)
HackYale - Natural Language Processing (Week 0)
 
Cross-Language Information Retrieval
Cross-Language Information RetrievalCross-Language Information Retrieval
Cross-Language Information Retrieval
 
NLTK
NLTKNLTK
NLTK
 
An-Exploration-of-scientific-literature-using-Natural-Language-Processing
An-Exploration-of-scientific-literature-using-Natural-Language-ProcessingAn-Exploration-of-scientific-literature-using-Natural-Language-Processing
An-Exploration-of-scientific-literature-using-Natural-Language-Processing
 
Cross language information retrieval (clir)slide
Cross language information retrieval (clir)slideCross language information retrieval (clir)slide
Cross language information retrieval (clir)slide
 

Similar to Building yourself with Python - Learn the Basics!!

Python Programming-1.pptx of python by computer
Python Programming-1.pptx of python by computerPython Programming-1.pptx of python by computer
Python Programming-1.pptx of python by computer
sharanyarashmir5
 
Python course task 10 guruprasanth.s
Python course task 10 guruprasanth.sPython course task 10 guruprasanth.s
Python course task 10 guruprasanth.s
GURUPRASANTH33
 
Python Programming Language
Python Programming LanguagePython Programming Language
Python Programming Language
Laxman Puri
 

Similar to Building yourself with Python - Learn the Basics!! (20)

Python A Comprehensive Guide for Beginners.pdf
Python A Comprehensive Guide for Beginners.pdfPython A Comprehensive Guide for Beginners.pdf
Python A Comprehensive Guide for Beginners.pdf
 
Python programming assignment help
Python programming assignment helpPython programming assignment help
Python programming assignment help
 
Python Programming.pptx
Python Programming.pptxPython Programming.pptx
Python Programming.pptx
 
Pythonlearn-01-Intro.pptx
Pythonlearn-01-Intro.pptxPythonlearn-01-Intro.pptx
Pythonlearn-01-Intro.pptx
 
Introduction-to-Python.pptx
Introduction-to-Python.pptxIntroduction-to-Python.pptx
Introduction-to-Python.pptx
 
How To Tame Python
How To Tame PythonHow To Tame Python
How To Tame Python
 
Python fundamentals
Python fundamentalsPython fundamentals
Python fundamentals
 
MODULE 1.pptx
MODULE 1.pptxMODULE 1.pptx
MODULE 1.pptx
 
Python Programming-1.pptx of python by computer
Python Programming-1.pptx of python by computerPython Programming-1.pptx of python by computer
Python Programming-1.pptx of python by computer
 
Programming Under Linux In Python
Programming Under Linux In PythonProgramming Under Linux In Python
Programming Under Linux In Python
 
Zero to Hero - Introduction to Python3
Zero to Hero - Introduction to Python3Zero to Hero - Introduction to Python3
Zero to Hero - Introduction to Python3
 
Which is better, Java or Python? And how?
Which is better, Java or Python? And how?Which is better, Java or Python? And how?
Which is better, Java or Python? And how?
 
Distributed Natural Language Processing Systems in Python
Distributed Natural Language Processing Systems in PythonDistributed Natural Language Processing Systems in Python
Distributed Natural Language Processing Systems in Python
 
Python course task 10 guruprasanth.s
Python course task 10 guruprasanth.sPython course task 10 guruprasanth.s
Python course task 10 guruprasanth.s
 
First Steps in Python Programming
First Steps in Python ProgrammingFirst Steps in Python Programming
First Steps in Python Programming
 
INTERNSHIP REPORT.docx
 INTERNSHIP REPORT.docx INTERNSHIP REPORT.docx
INTERNSHIP REPORT.docx
 
introduction of python in data science
introduction of python in data scienceintroduction of python in data science
introduction of python in data science
 
Python basics_ part1
Python basics_ part1Python basics_ part1
Python basics_ part1
 
Python introduction towards data science
Python introduction towards data sciencePython introduction towards data science
Python introduction towards data science
 
Python Programming Language
Python Programming LanguagePython Programming Language
Python Programming Language
 

Recently uploaded

introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
VishalKumarJha10
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
VictorSzoltysek
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 

Recently uploaded (20)

Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 

Building yourself with Python - Learn the Basics!!

Editor's Notes

  1. Well I am franklin and I don’t really have a lot on my list of career CV in terms of software engineering. I started out as a mechanical engineer. Quit my job cos it was not satisfying enough and it didn’t make me think. Wanted something new, challenging and also help me get money. So I took on software engineering and I loved it. This is my fourth month in learning code and I can say I have made tremendous improvements. I think is chose the right programming language to start with. I want share to you how I was able to make the right choices thus the topic of my talk which is building yourself with python Learn the basics.!! So if you are a beginner here this is for you and just know that you are not alone, I am here and the python community is here to help you out.
  2. So the first step to become a software engineer is choosing a language. I had no idea what and what to do as a software engineer where to start and what I should do first. I met many friends and all of them had their opinions I want to YouTube channels and every software engineer Youtuber had his or her opinion. With some research and facts, I settled on python which I think it’s the best language I won’t be doing any comparisons here, because you already know the best language if it is not like we won’t be here. Well fellow newbies I am here to show you some reasons why you have to build yourself with python so if you have chosen python I think you have done the right thing. If you haven’t then I guess you have to consider these reason to be a python programmer or build yourself with python.
  3.  Many find coding in Python a satisfying experience. Thus, Python has gained popularity for being a beginner-friendly language, and it has replaced Java as the most popular introductory language at Top U.S. Universities. Being a very high level language, Python reads like English, which takes a lot of syntax-learning stress off coding beginners. Python handles a lot of complexity for you, so it is very beginner-friendly in that it allows beginners to focus on learning programming concepts and not have to worry about too much details.
  4. So lets say you want to introduce programing to your friend for the first time and you say hey: I want us to write a simple program that’s reads hello world. Which one do you think would be more fun and encouraging to learn.
  5. As a dynamically typed language, Python is really flexible. This means there are no hard rules on how to build features, and you'll have more flexibility solving problems using different methods (though the Python philosophy encourages using the obvious way to solve things). Furthermore, Python is also more forgiving of errors, so you'll still be able to compile and run your program until you hit the problematic part.
  6. Many high use programing tasks have already been scripted into the standard library which reduces length of code to be written significantly. when I was creating my first word guessing game I came across the random module which proved very useful to me
  7. As you step into the programming world, you'll soon understand how vital support is, as the developer community is all about giving and receiving help. The larger a community, the more likely you'd get help and the more people will be building useful tools to ease the process of development. For instance when I was learning how to code I lacked support which really made me derail in my lesson until I found a local programing community. 3th Most-Used Language at GitHub: Over 950 Python projects have over 500 stars. With 744,045 pull requests which is an increase of 54% as compared to last year. The more useful projects there are, the more likely someone has already built a function you need and built it well, which will great.ly speed up your development process. 3rd Largest Meetup Community At meetups, you can generally network and learn from fellow developers. Meetups often offer mentorship to those who want it as well. There are 1300+ Python groups on Meetup.com, totaling 608k+ members. Thus, in terms of programming languages, Python is the 3rd largest community. 5th Largest Stack Overflow Community Stack Overflow is a programming Q&A site you will no doubt become intimate with as a coding beginner. Python has 85.9k followers, with over 500k Python questions. Python questions are also the 3rd most likely to be answered when compared to other popular programming languages.
  8. On Angel List, Python is the 2nd most demanded skill and also the skill with the highest average salary offered. With the rise of big data, Python developers are in demand as data scientists, especially since Python can be easily integrated into web applications to carry out tasks that require machine learning
  9. Big data is extremely big data sets that may be analyzed computationally to reveal patterns, trends, and associations, especially relating to human behavior and interactions
  10. Big data is extremely big data sets that may be analyzed computationally to reveal patterns, trends, and associations, especially relating to human behavior and interactions
  11. As an open source project, Python is actively worked on with a moderate update cycle, pushing out new versions every year or so to make sure it remains relevant. A programming language's ability to stay relevant also depends on whether the language is getting new blood. In terms of search volume for anyone interested in learning Python, it has skyrocketed to the 1st place when compared to other languages. Big data is extremely big data sets that may be analyzed computationally to reveal patterns, trends, and associations, especially relating to human behavior and interactions
  12. Meet Joe Joe is a learning machine. He zips through podcasts at 2X speed on his commute, devours online courses at his desk with lunch, and juggles 2-3 technical books between the Kindle app on his iPhone and the dead trees by his bed. He does all this because he wants to get into software development by learning this new multipurpose and popular language of his time python! He wants to be the best at this language. Since he cut his teeth as a programmer at junior high school he has seen entire languages and platforms come and go: Visual Basic, ActiveX, ColdFusion, Fortran etc. Today he has seen a new programing language come to light (python) and he has made it his goal to become the python guru and also become the In-Demand Python Developer Companies Are Dying to Recruit.
  13. He hits up Amazon and buy every book that looks remotely related to python. He picks up the first book he buys and plow right through from page 1 through to page 876. He repeats that for 5-10 more books. He tracks down video courses by well-known experts and buy them. Sit down and watch the course end to end. Repeat with every video course and YouTube series he could find. Scour the web for blog posts and add anything that seemed important to his reading list. Spend hours scouring through the blog posts, looking for new scraps of information that I’d missed. Takes any online course he finds from codecademy to udemy Little did he know that his brain is already red-lining.
  14. Whiles he is studying every day, he bumps into new things from new libraries to new python versions and he would keep asking himself: “How Will I Ever Keep Up?” And every time he thought he had a good handle on the topic, he stumbles across some new rabbit trail that he hadn’t explored yet. The goal posts were always moving. The longer and harder he studied, the more the topic seemed to expand in all directions. He never got that satisfaction of “done”—and eventually He’d just get overwhelmed and move on to something that seemed more interesting or urgent. Worst of all…Joe once said: “When I Tried To Apply What I’d “Learned” I Couldn’t Remember Half Of It!”
  15. Well most of my story is exaggerated but I know most beginners and even some experts trying to learn a new language get stuck one way or the other trying to do this. They think they have to learn it all before they can make something useful with the language. So for you not to be in the situation Joe was in or like this Dude trying to climb this mountain. You have to…
  16. Learn the basics!!! The five concepts you should know include
  17. Variables, Control structures, Data structures, Syntax Tools. I would try and explain this concept down to earth as possible, touch on a few examples and then give you an idea on what concepts you need to understand programing.
  18. Variables are the backbone of any program, and thus the backbone of any programming language. I like to start off by defining what we’re about to learn, so, Wiki defines a variable as follows In computer programming, a variable is a storage location and an associated symbolic name which contains some known or unknown quantity or information, a value. Okay, well, that’s kind of cryptic.  To me, a variable is simply a way to store some sort of information for later use, and we can retrieve this information by referring to a “word” that will describe this information. For example, let’s say you come to my website www.learnpython.com and the first thing I want to do, is ask you what your name is (so that I can greet you in a nice way the next time you visit my website).  I would put a little text box on the screen that asks you what your name is… that text box would represent a variable!  Let’s say I called that text box ‘yourName’, that would be the symbolic name (or “word”) for your variable (as described from our wiki definition above). So now, when you type your name into the text box, that information would be stored in a variable called ‘yourName’.  I would then be able to come back and say “What value does the variable ‘yourName’ contain?”, and the program would tell me whatever it was your typed into that text box.   This concept is extremely powerful in programming and is used constantly.  It is what makes Facebook and Twitter work, it’s what makes paying your bills via your online bank work, it’s what allows you to place a bid on eBay.  Variables make the programming world go ’round.
  19. Now, if we want to get more specific, when it comes to the python programming language, variables have different types. Specifying what kind of data that you are dealing with allows the programming language to use that data in interesting ways. Again, what I say “specifying what kind of data”, I’m just referring to the type of data
  20. Python variables do not need explicit declaration to reserve memory space. The declaration happens automatically when you assign a value to a variable. The equal sign (=) is used to assign values to variables. The operand to the left of the = operator is the name of the variable and the operand to the right of the = operator is the value stored in the variable.
  21. Or, let’s say I also wanted to store your age, that type would be stored as an Integer.  Or let’s say I wanted to store how much money you make in a year, that type would be stored as an integer. Your desire is to add two numbers together, let’s say the number 22 and the number 3. Python will behave differently depending on the type of the variable that’s storing this data. Let me show you what I mean: Makes sense right?  Finally, variables have types, and these types are used to help us organize what can and cannot be stored in the variable.  Hint: having a type will help to open up what kind of things we can do with the information inside the variable.  Example:  if you have two Integers (let’s say 50 and 32), you would be able to subtract one variable from the other (i.e 50 – 32 = 18), pretty straight forward right?  But, if you had two variables that stored names (i.e. “kojo” – “kofi”) it wouldn’t make sense to subtract one from the other (i.e.  “kojo” – “kofi”), because that just doesn’t mean anything!  So, types are also a powerful thing, and they help us to make sense of what we CAN do with our variables and what we CANNOT do!) If you have defined your variables to be of type Integer, then adding 22 and 3 together will result in the Integer 25. Makes perfect sense right? Of course, this is simple Math. But what happens if your variables are not Integers, but are Strings? A String in python is a different kind of data type and it behaves differently BECAUSE it is a different type of data. When we refer to a String in python (and in many other programming languages) we are treating the data like it’s just a plain old sentence in the English language. A String just represents words (or more specifically letters) all placed in a certain order. That’s all the English language (or any language) is, a series of characters/letters placed in a certain order to give meaning to what you’re writing down. So now I ask you, what does it mean to add two sentences together? What does it mean to add two Strings together? I’ll show you. If you were to have two variables, each defined as Strings and they stored the data “22” and “3” (respectively), what would happen if we added them together? We would get the String: “223” This might be confusing at first, but it makes more sense when we use less “misleading” data. Let’s assume that in our two String variables, we aren’t storing numbers, we’re storing words. So in variable 1 we store the String “Hello”, and in variable 2 we store the String “World”. Now what happens in your mind if I tell you to add those two words together? Hopefully your natural instinct is to say that the resulting String would be “Hello World”!
  22. variable is usually named after the kind of content you’ll be storing in the variable, so if I’m storing your name in the variable, you’d name the variable ‘yourName’.  You wouldn’t HAVE to give it that name, you could name the variable “holyCrapImProgramming”, but that wouldn’t make a whole lot of sense considering you are trying to store a person’s name.  Makes sense right? variable name a Variable name can be made up of letters and numbers, but the only special characters they can contain are underscores (_).  They also usually start with a lower case letter, they don’t have to, but that’s kind of an accepted and suggested convention (at least in the python world).  The third part of the syntax for creating a variable is the value that the variable will hold.  In this case, we have a String variable, so we have the value "Hello Everyone!".  In python, Strings are defined by wrapping regular letters/numbers/special characters in quotes (” “). And in python too there are some keywords you cannot use as a constatnt or variable name:
  23. So, to sum up, we talked about what a variable is and how you can store information in a variable and then retrieve that information at some later point in time. The variable can have a name, and this name you give to the variable is usually named after the kind of content you’ll be storing in the variable, so if I’m storing your name in the variable, you’d name the variable ‘yourName’. You wouldn’t HAVE to give it that name, you could name the variable “holyCrapImProgramming”, but that wouldn’t make a whole lot of sense considering you are trying to store a person’s name. Makes sense right? Finally, variables have types, and these types are used to help us organize what can and cannot be stored in the variable. Hint: having a typewill help to open up what kind of things we can do with the information inside the variable.
  24. so what on earth is a control structure? Let’s check on wiki again A control structure is a block of programming that analyzes variables and chooses a direction in which to go based on given parameters. The term flow control details the direction the program takes (which way program control “flows”). Hence it is the basic decision-making process in computing; flow control determines how a computer will respond when given certain conditions and parameters. H’okay, so, that definition is obviously a bunch of technical terms that no beginner to programming would understand.  So let me try to describe it in more human terms.  When a program is running, the code is being read by the computer line by line (from top to bottom, and for the most part left to right), just like you would read a book. 
  25. So, you can see above that we have a variable, and its name is age, and we are comparing age to 20 and 13, if you’re less than 20 AND you’re more than 13, then you must be a teenager (because you are between 14 and 19 years of age).  What will happen inside of this control structure, is that if the value assigned to the age variable is between 13 and 19, then the code will do whatever is after the first indent which prints you are an integer.  And if you are NOT a teenager, then it will skip the first indent of code and it will execute whatever is after the second indent of code. Let’s not worry too much about what the code looks like for the moment, as I’ll touch on how to write the code out properly in section #4 syntax.   The only concept you need to try and wrap your head around right now, is that there is a way in programming to ‘choose’ which lines of code to execute, and which lines of code to skip, and that will all depend on the state of the variables inside of your control structure.  When I say state of a variable, I just mean what value that variable has at any given moment, so if age = 15, then the state of that variable is currently 15 (and thus, you’re a teenager). This control structure is known as the if control structure let me hit you with other examples.
  26. This while loop control structure is also very handy, its purpose is to execute code after the first indent over and over and over until the condition becomes false.  Okay, so what’s the condition?  Well, the condition is what comes after the while statements, and in this example it checks age to see if you are less than 18.  So if you are less than 18, it will continuously execute the code after the indent.  Now, if you were 18 or older before the while loop control structure is reached by the code flow, then it won’t execute ANY of the code inside after the indent.  It will just skip that code and continue on executing code below the while loop control structure.
  27. There are a few other examples of control structures in python, but I don’t want to overwhelm you with them right now.  So instead I’ll sum up what we’ve learned today. We’ve learned that code flows from top to bottom and for the most part left to right, just like a book.  We’ve learned that we can skip over certain code or execute certain parts of code over and over again, and this is all achieved by using different control structures.  These control structures are immensely important to programming, as they make the programs function properly.  For example, you wouldn’t want people to be able to login to your Facebook account if they enter the wrong password right?  Well, that’s why we use the if...else control structure, if the passwords match, then login, else show a “password is incorrect” screen.  So, without control structures, your program’s code would only flow in one way, and it would essentially only do one thing over and over again, which wouldn’t be very helpful.  Changing what the code does based on a variable is what makes programs useful to us all!
  28. Next basic concept we have to know is data structures: so what are data structures and why is it so useful lets go on to wiki again and see what is says   Show on the screen In computer science, a data structure is a particular way of storing and organizing data in a computer so that it can be used efficiently.   Say this Okay, that definition is a little more down to earth.  But, there is a lot of ‘meat’ behind data structures.  Let me try to explain the point of data structures by giving you an example… Let’s use a list of contacts as the example!  You probably have a list of contacts somewhere in your life, whether it’s in one of your email programs or an address book in a kitchen drawer.  There are a bunch of contacts, and that list of contacts could grow (or shrink) at any given moment.  If you were to try and represent all those contacts as variables in a computer program, how would you do it?  Well, there’s a right way, and a wrong way.  For the purposes of our example, let’s say we need to keep track of 10 contacts.
  29. First, the WRONG WAY If we need to store 10 contacts, we would probably define 10 variables, right?Say this In the world of programming, this is just a terrible way of trying to store 10 different variables.  This is because of two main reasons:
  30. The sheer amount of text that you’ll need to write in your program Sure, right now we only have 10 contacts, so it’s not too bad, but what if we had 1,000 contacts!  Imagine typing that out a thousand times!  Forget about it! The flexibility of code If we need to add another contact, we wouldn’t be able to do it without manually editing our code. We would have to go into our code, physically write out contact10, and then try to store whatever information is needed into the new variable. This is just crazy talk!
  31. So what’s the right way? All I need you to understand right now, is that there is a way to store a bunch of contacts into something called a data structure (in the case of our example, a List).  Okay, so, what’s so great about a List?  Well, for one thing, you can add and remove things from a list with ease.  So if you started with 10 contacts, it’s a piece of cake to add another contact to the list, how you ask?  Just like this:
  32. Voila, we’ve added another contact to our contacts list!  So, you may be saying, the right way looks like just as much typing as the wrong way.  You’ve got a point, but the main difference is that with the first approach, you had to “create” 10 unique variables (i.e. contact1, contact2, contact3, contact4…), but with the second approach, we only created 1 variable (contacts).  Because we only had to create 1 variable, and because we can say contacts.add(someRandomContact), means that our code is much more flexible and dynamic.   When I say dynamic, I mean that the outcomes of the program can change depending on what variables you give to it.  That’s really the key to using data structures!   We want our code to be as dynamic as possible, we want it to be able to handle a bunch of situations without having to write more and more code as the days go by.
  33. We have other cool data structures in python, some includes = dictionaries and tuples there are other examples but these are the popular ones we can talk about
  34. Summary  A data structure is a way of storing and organizing data in such a way that it can be used efficiently.   Okay, so let’s sum up everything we’ve talked about.  A data structure is a way of storing and organizing data in such a way that it can be used efficiently.  The point is to avoid creating crap loads of variables people! python allows us to do this by using Lists and dictionaries (as well as many other data structures, but these two are the most common).  These two data structures can grow and shrink without you having to worry about coding all of that ‘behind the scenes’ stuff.  When you add to a List, the new element is there and is usable (like magic), when you remove from the List, that element is now gone (poof!).  This saves us from creating and deleting variables in our code manually.
  35. As a new programmer syntax is the one thing that will discourage you from learning to program.  It takes practice and patience to understand, but I promise you, it will become second nature in time.  So please be patient, and more importantly, be excited to learn about syntax in python, because once you get the hang of it, you’ll be on your way to programming like a champ!  Let’s dive into the next basic thing you should learn SYNTAX. What is syntax lets hop for the definition really quick In computer science, the syntax of a programming language is the set of rules that define the combinations of symbols that are considered to be correctly structured programs in that language.
  36.  Alright, so I would say that’s almost English, but what do they mean by “combinations of symbols that are correctly structured”?  Well, I would choose a different word than symbols.   I would define syntax to be a particular layout of words and symbols.   An example of this in the case of python would be round brackets (), curly brackets: and variables, among other thing. Think of it like this, when you look at an email address  (i.e. forsonfranklin@gmail.com), you can immediately identify the fact that it’s an email address right?  So why is that?  Why does your brain make the connection that it’s an email address, and not, say, a website address?   Well, it’s because an email address has a particular syntax.  Well, it’s because an email address has a particular syntax.  You need some combination of letters and numbers, potentially with underscores (_) or periods (.) in between, followed by an (@) symbol, followed by a website domain (company.com)  That is a defined combination of letters and symbols that are considered correct structure in the “language” of the internet and email addresses. syntax in a programming language is much the same, there are a set of rules that are in place, which when you follow them, allows  your programming language to understand you and allow you to create some piece of functioning software.  But, if you don’t abide by the rules of a programming languages’ syntax, you’ll get errors 🙁
  37. Say this How about an example of syntax in python?  Well you’ve seen it already back when we talked about variables and control structures.  To define a variable in python, you need to do this: In python if you want to create a string variable you type in the variable name a Variable name can be made up of letters and numbers, but the only special characters they can contain are underscores (_).  They also usually start with a lower case letter, they don’t have to, but that’s kind of an accepted and suggested convention (at least in the python world).  The third part of the syntax for creating a variable is the value that the variable will hold.  In this case, we have a String variable, so we have the value "Hello Everyone!".  In python, Strings are defined by wrapping regular letters/numbers/special characters in quotes (” “). Lines and indentation Comments in Python Quotation in Python
  38. Python provides no braces to indicate blocks of code for class and function definitions or flow control. Blocks of code are denoted by line indentation, which is rigidly enforced. The number of spaces in the indentation is variable, but all statements within the block must be indented the same amount. For example −
  39. Self explanatory
  40. So, as I mentioned before, the syntax of any programming language will likely be your biggest hurdle as a new developer, but as you see more and more examples of code and are introduced to more and more syntax in the language, you will become comfortable.  There is good news though, as people have realized that dealing with syntax can be tough, so certain companies (or groups of enthusiasts, a.k.a nerds) have created tools to help us with the syntax of programming languages.  These tools are called IDEs, or, Integrated Development Environments, which you can download onto your computer and use to create programs.  These IDEs have built in syntax checkers (much like the grammar checker in MS Word) that will let you know if your syntax is incorrect, and will even give you hints with what it thinks you meant to put!  So don’t you worry, I’ll cover those tools in the final of my talk section of this 5 part series.
  41. What are tools?  Well, I don’t think we need to go to wiki to define this one, as many of you should already know what a tool is.   In the real world, a tool is something (usually a physical object) that allows you to get a certain job done in a more timely manner.  Well, this holds true with the programming world too.  A tool in programming is a piece of software that, when used while you code, allows you to get your program done faster! There are probably tens of thousands, if not hundreds of thousands of different tools across all the programming languages, but I’ll focus on the main kinds tools that everyone is likely to use.
  42. The first and most important tool, in my opinion, is a Text Editor.  A text editor is a piece of software that will make your coding life so much easier.  Text editors will check the syntax of your code to ensure you don’t have any errors, they will organize your files and give you a nice way to view them (i.e. applies color schemes to your code so it’s easier to interpret), they tend to have code completion (which will actually fill in some code for you, in common scenarios), as well as allow you to navigate through your code easily.   There are many other advantages of using an IDE, but I think you get the idea Do not use the native python Integrated Development Environment whiles studding the basics of code. The debugging and correction functionality is non- existent. You should also not use the native idle. It has serious limitations in how it works and it not a very good piece of software when using it as a beginner All you need is a simple text editor, a shell, and Python.
  43. DEBUGGING FUNCTIONALITY Finding bugs (errors) in your code is a process called debugging. Even the most expert developer in the world spends time debugging. Writing perfect code on the first pass is nearly impossible. When you do, it’s cause for celebration because it won’t happen often. Consequently, the debugging capabilities of your IDE are critical. Unfortunately, the debugging capabilities of the native Python tools are almost nonexistent. If you spend any time at all debugging, you quickly find the native tools annoying because of what they don’t tell you about your code. The best IDEs double as training tools. Given enough features, an IDE can help you explore code written by true experts. Tracing through applications is a time-honored method of learning new skills and honing the skills you already possess. A seemingly small advance in knowledge can often become a huge savings in time later. When looking for an IDE, don’t just look at debugging features as a means to remove errors — see them also as a means to learn new things about Python.
  44. “If you are a beginner in development, and you feel bad about not knowing everything. There is one thing I want you to realize: No one knows EVERYTHING. Developer greatness is achieved by having the growth mindset. By working hard, practicing the right habits and drilling the basics into yourself, you can achieve that software developer greatness you ever dreamt of.” - Franklin Oduro (me)