Hoe te beginnen met coderen: A Practical Guide For Beginners (Updated 2020)

Stap 3: Start een project om te oefenen wat je hebt geleerd

Het kijken naar cursussen alleen zou je niet helpen het concept te internaliseren. Je moet het concept in de praktijk brengen. De beste manier om dat te doen is door projecten te bedenken.

Als je een idee hebt voor een project of een probleem hebt dat je wilt oplossen met coderen, is dat geweldig!

Als dat niet het geval is, heb ik een lijst met beginnersvriendelijke projecten opgesteld waar je inspiratie uit kunt halen of die je kunt proberen.

Enkele beginnersvriendelijke projecten die je kunt proberen

Hier zijn enkele terminologieën die verwarrend kunnen zijn

Bibliotheken: Een bibliotheek is een verzameling verwante stukken code die zijn gecompileerd en samen in een enkel bestand zijn opgeslagen. Dat bestand kan aan uw code worden gekoppeld om u toegang te geven tot de code in de library.

API: API staat voor Application Programming Interface. Een API is een software tussenpersoon die het mogelijk maakt dat twee applicaties met elkaar kunnen praten. Met andere woorden, met een API kunt u functies van een softwareprovider opvragen om in uw code te gebruiken. Bijvoorbeeld, de Spotify API stelt u in staat om gegevens zoals nummers en artiesten op te vragen bij Spotify en u kunt gebruik maken van de gegevens in uw code of applicatie.

Level 1 Projecten

Calculator

  • Taal: Python
  • Bibliotheken: Geen
  • Gids: https://www.programiz.com/python-programming/examples/calculator

Sudoku Solver

  • Taal: Python
  • Bibliotheken: Geen
  • Gids: https://techwithtim.net/tutorials/python-programming/sudoku-solver-backtracking/

Hangman

  • Taal: Python
  • Bibliotheken: Geen
  • Gids: https://www.pythonforbeginners.com/code-snippets-source-code/game-hangman

Level 2 Projecten

Chess

  • Taal: Python of Java
  • Bibliotheken: Geen
  • Gids: https://www.youtube.com/watch?v=ejZqLsQDjuo

Weekelijks Spotify playlist ontdekken

  • Bouw je eigen systeem om iets soortgelijks te doen als Wekelijks Spotify playlist ontdekken
  • Taal: Python
  • Bibliotheken: Spotify API
  • Gids: https://towardsdatascience.com/making-your-own-discover-weekly-f1ac7546fedb

Automatische tijd tracking Tool

  • Verbeter de focus door het bijhouden van de tijd besteed aan desktop applicaties of websites in real-time.
  • Taal: Python
  • Bibliotheken: Selenium
  • Gids: https://www.youtube.com/watch?v=ZBLYcvPl1MA

Level 3 Projecten

Instagram Automatisering

  • Het proces van posten op Instagram automatiseren
  • Taal: Python
  • Bibliotheken: Flask,Instapy
  • Gids: https://www.youtube.com/watch?v=vnfhv1E1dU4

Twitter Bot

  • Een bot die automatisch tweet naar je feed.
  • Taal: Python
  • Bibliotheken: Twitter API
  • Gids: https://medium.com/science-friday-footnotes/how-to-make-a-twitter-bot-in-under-an-hour-259597558acf, https://learn.g2.com/how-to-make-a-twitter-bot, http://socialmedia-class.org/twittertutorial.html

Telegram chatbot

  • Een chatbot waarmee u chat telegram berichten kunt automatiseren
  • Taal: Python
  • Bibliotheken: Python-Telegram-API
  • Gids: https://www.freecodecamp.org/news/learn-to-build-your-first-bot-in-telegram-with-python-4c99526765e4/

Dit is geen uitputtende lijst. Als je een probleem hebt dat je moet oplossen, bedenk dan hoe je dat met programmeren kunt oplossen. Dat kan ook een project zijn.

Niet snel opgeven, je moet voorbij de aanvankelijke strubbelingen

De grootste fout die je als aspirant-programmeur kunt maken, is opgeven omdat je denkt dat je niet slim genoeg bent om te leren programmeren. Leren coderen heeft niets te maken met je intelligentie.

Leren programmeren is moeilijk en de meeste mensen zouden op een bepaald punt moeilijkheden ondervinden omdat er veel onderwerpen zijn om te leren. Als je aan het programmeren bent, zullen er veel onderwerpen zijn die je de eerste keer niet zult begrijpen. Dus, onthoud je van negatieve zelf-gedachten.

Ik loop ook vast. Ik moet vaak dezelfde lezing of video meerdere keren herbekijken voordat ik het concept begrijp. Laat je niet ontmoedigen als je in mijn schoenen staat.

Het is belangrijk om een sterke basis te leggen

Zo elementair als ze in het begin misschien lijken, programmeerfundamenten moeten altijd eerst komen: hoe beter je ze begrijpt, hoe gemakkelijker het is om meer geavanceerde concepten te leren. Als het huidige onderwerp dat je aan het leren bent je niet duidelijk lijkt, blijf dan waar je bent. Ga niet verder naar het volgende onderwerp. Overslaan is vergelijkbaar met het bouwen van een huis zonder basis, waarbij de fundering wordt verwaarloosd.

Als de tutorial (of het boek) dat je gebruikt het onderwerp niet voldoende heeft uitgelegd, moet je misschien andere bronnen vinden die bij je passen. Je kunt zo ongeveer alles wat je wilt leren gratis vinden op Google. Zoek uit waarnaar je moet zoeken (bijv. in + andere nuttige trefwoorden).

Neem minstens 20 minuten de tijd om iets zelf uit te zoeken voordat je hulp zoekt. Er is een goede kans dat het antwoord al voor je ligt. Door te worstelen leer je beter en word je een betere programmeur.

Stackoverflow en leer programmeren zijn goudmijnen voor hulp bij het programmeren.

Leer door te doen. Speel altijd met de code tijdens het leren.

Het doel is om je bewust te zijn van je eigen leerproces tijdens het doorlopen van het leerpad. Volg daarom niet blindelings de cursussen en kopieer blindelings de code zonder deze eerst te begrijpen. Begrijp de concepten die in de les zijn geleerd en probeer het na te maken.

Naarmate u vordert, maak er een gewoonte van om uw programmering te oefenen. U kunt dit doen op leetcode, hackerrank, of het maken van een project. Probeer na elke module een project te doen met de concepten die je hebt geleerd. Toen ik online cursussen deed, probeerde ik elke week een project te doen, waarbij ik alle concepten toepaste die ik had geleerd.

Deel 2: Stappenplan om een gevorderde programmeur te worden

Nu je de basis van programmeren hebt geleerd, zou de volgende stap zijn om na te denken over welk pad van programmeren je meer wilt leren over. Er zijn veel paden die je kunt wagen in zodra je de basis van het programmeren hebt begrepen, met de belangrijkste en meer populaire paden zijn Software Engineering & Data Analytics.

Data Analytics

Wat is Data Analytics?

Data Analytics is de wetenschap van het onderzoeken van ruwe gegevens om nieuwe informatie te concluderen. Het gaat om het toepassen van een algoritmisch of mechanisch proces om inzichten af te leiden. Bijvoorbeeld, het doorlopen van verschillende datasets om te zoeken naar zinvolle correlaties tussen elkaar.

Dus, waarom zou je data analytics moeten leren? Big Data is de toekomst. Het wordt in een exponentieel tempo gegenereerd, en veel bedrijven maken gebruik van die gegevens om betere beslissingen te nemen, evenals bestaande theorieën of modellen te verifiëren en te weerleggen. Verwacht wordt dat de vraag naar data analytics in de toekomst zal toenemen, aangezien gegevens in veel bedrijven de kern van het besluitvormingsproces zullen vormen.

Hoe kun je Data Analytics gratis leren?

Ik heb het curriculum van universiteiten doorgekamd en ben op een pad gekomen om te proberen gratis online cursussen te matchen met universitaire cursussen. Al deze cursussen zijn echter in Python, als je in een andere taal wilt leren, voel je dan vrij om andere cursussen te bekijken.

Outline of Data Analytics Modules

De outline is over het algemeen gebaseerd op universitaire modules. Echter, ik ben het uitsluiten van enkele van de belangrijke modules zoals Data Structure en Algoritme die universiteiten onderwijzen, zoals die zijn meer conceptuele en hoger niveau.

Note: Ik heb machine learning hoger in de prioriteit, omdat het stelt u in staat om gebruik te maken van de vaardigheden die je geleerd in fundamentele cursussen.

Fundamentele cursussen

Module 1: Leren van de basis van Python (1 maand)

  • Leren van de syntaxis van Python
  • Leren van Loops
  • Leren van Object-georiënteerd programmeren

Module 2: Data Pre-processing, Data Visualization, Exploratory Data Analysis (1 Maand)

  • Leren hoe je gebruik kunt maken van python bibliotheken (matplotlib, numpy en pandas)
  • Met deze bibliotheken kun je de data manipuleren

Gevorderde cursussen

Module 3: Machine Learning (2 Maanden)

  • Voorvereiste: Lineaire Algebra
  • Machine Learning is een vrij technische cursus over wiskunde
  • Python heeft een vrij uitgebreide bibliotheek voor Machine Learning genaamd Scikit-Learn.
  • Als u een meer hands-on benadering van het leren van machine learning wilt, kunt u kijken op Kaggle Learn.

Real-World Tools Cursussen

Module 4: Databases (SQL) (1 maand)

  • De database cursus leert je in principe hoe gegevens worden opgeslagen en hoe je die gegevens kunt opvragen om programmeerfuncties uit te voeren.
  • Werkkennis van databases en SQL is een must als je data scientist wilt worden.

Module 5: Real-World Tools Courses

  • Hadoop & Map-Reduce + Spark(kies er één) (1.5 maand)
  • Dit zijn Big Data-tools die de industrie gewoonlijk gebruikt voor het verwerken van grote hoeveelheden gegevens.
  • Leren van Hadoop-technologieën zal u veel fundamentele kennis, theorie en praktijkvaardigheden geven. Ook kunt u er iets nieuws mee ontdekken.
  • Spark is de moderne implementatie van Hadoop en wordt steeds vaker gebruikt.

Module 6: Data Storytelling (1 week)

  • Het presenteren van een verhaal met gegevens is de ontbrekende schakel van de analytics-professional bij het leveren van de essentie van datasignalen en inzichten aan leidinggevenden, management en andere belanghebbenden.

Optionele cursussen

  • Data Structure
  • Algorithm
  • Deep Learning
  • In vijf cursussen leert u de grondslagen van Deep Learning, begrijpt u hoe u neurale netwerken bouwt, en leert u hoe u succesvolle machine learning-projecten leidt. Je zult al deze ideeën oefenen in Python en in TensorFlow, die ze zullen leren.
  • Het is een van de beste deep learning-cursussen die er zijn. Momenteel ben ik bezig met deze cursus en ik ben het eens met de beoordelingen, omdat het op een eenvoudige en duidelijke manier wordt gepresenteerd, ondanks dat Deep Learning een technisch onderwerp is.
  • Een andere geweldige gratis bron is fast.ai

Dingen om te vermijden tijdens het leren van Data Analytics

De valkuil is dat je alleen maar leert, maar de kennis niet toepast. Een manier waarop ik mijn kennis probeer toe te passen is door na elke module die ik heb afgerond een project te starten. Voor Data Analytics kun je je best doen op een wedstrijd naar keuze van Kaggle. Gebruik Kaggle Learn als een handige gids

Software Engineering

Wat is Software Engineering?

In een notendop, Software Engineering is in feite het gebruik van programmeerconcepten om applicaties te bouwen

Hoe kun je Software Engineering gratis leren?

Ik denk dat Software Engineering een fundamenteler begrip van computerconcepten vereist dan Data Analytics, daarom heb ik in mijn moduleschema meer theoretische cursussen opgenomen.

Wil je dingen bouwen om een gevoel te krijgen?

Als dat zo is, leer dan Python en ga naar de praktische cursussen. U kunt altijd terugkeren naar de fundamentele cursussen als je een obstakel in termen van theoretische kennis.

Outline of Software Engineering Modules

Fundamental Courses

Module 1: De grondbeginselen van Python leren (1 maand)

  • Leren van de syntaxis van Python
  • Leren van lussen
  • Leren van object-georiënteerd programmeren

Module 2: Data Structures (2 Maanden)

  • Deze cursus behandelt essentiële data structuren zoals gelinkte lijsten, stapels, wachtrijen, binaire bomen, en hash tabellen, en zoek en sorteer algoritmen zoals binair zoeken, quicksort, mergesort, insertion sort, enz.
  • Gegevensstructuren zijn belangrijk omdat het ons in staat stelt de prestaties van onze code te verbeteren door het beste gegevenstype voor onze code te gebruiken.
  • De cursus Gegevensstructuur die ik heb aanbevolen is in Java, omdat het ons dwingt de overgang te maken van een eenvoudige taal als python naar een meer verbale taal. Ook is Java goed voor het leren van object-georiënteerd programmeren en Data Structures.

Module 3: Algoritmen (2 maand)

  • Dit is het tweede deel van een tweedelige serie gratis online Coursera-cursussen over datastructuren en algoritmen door Robert Sedgewick en Kevin Wayne, beiden hoogleraren Informatica.
  • In dit deel leert u over de grafiek- en string-verwerkende algoritmen.
  • U leert ook enkele geavanceerde datastructuren en algoritmen die bij de ontwikkeling van toepassingen worden gebruikt.

Module 4 : (Databases) (1 maand)

  • De databasecursus leert u in feite hoe gegevens worden opgeslagen en hoe u die gegevens kunt opvragen om programmeerfuncties uit te voeren.

Module 5: Netwerken (1 maand)

  • Het volgen van een cursus netwerken is niet erg belangrijk, dus je kunt deze overslaan als je wilt. Als u echter geïnteresseerd bent in cyberbeveiliging, is het absoluut een essentiële cursus

Praktische cursussen

Module 6: Week 9-10 (Webontwikkeling) (2 Maand)

  • Onderwerpen zijn onder meer databaseontwerp, schaalbaarheid, beveiliging en gebruikerservaring. Door middel van hands-on projecten leert u API’s te schrijven en te gebruiken, interactieve UI’s te maken en gebruik te maken van cloud-diensten zoals GitHub en Heroku. Aan het einde van de cursus zul je tevoorschijn komen met kennis en ervaring in principes, talen en tools die je in staat stellen om applicaties te ontwerpen en te implementeren op het internet.
  • Persoonlijk was dit mijn favoriete cursus voor webontwikkeling omdat ze door de front-end en back-end gaan en het is heel goed uitgelegd. Ze leren je HTML, CSS, Javascript, en PHP.
  • Dit is een goede bron voor website inspiraties: https://github.com/melanierichards/just-build-websites

Module 7: Mobile App Development ( kies welke je het leukst vindt) (2 maand)

  • IOS
  • Android
  • Flutter (Mijn voorkeursmethode voor App Development)
  • Persoonlijk heb ik IOS-ontwikkeling nog niet eerder geleerd. Maar vergeleken tussen android en flutter, flutter is sneller te ontwikkelen en prototype met en daarom geef ik de voorkeur flutter

Gevorderde cursussen

Module 8: Software Architectuur (2 maanden)

  • In deze cursus leert u hoe u een software-architectuur met behulp van visuele tools zoals UML, dat is erg belangrijk om de architectuur te communiceren met de aandeelhouders en ontwikkelaars die het zal implementeren vertegenwoordigen.
  • U leert ook enkele van de standaard architecturen, hun kwaliteiten, en tradeoffs. De cursus spreekt ook over hoe ontwerpen worden geëvalueerd, wat maakt een goede architectuur, en architectuur kan worden verbeterd.

Module 9: Software Engineering Practices (1 maand)

  • Na afloop van deze cursus bent u in staat om
  1. Kernpraktijken voor software engineering op conceptueel niveau toe te passen voor een gegeven probleem.
  2. Op hoog niveau traditionele, agile en lean ontwikkelmethodologieën met elkaar te vergelijken en te contrasteren. Deze omvatten Waterval, Rational Unified Process, V-model, Incrementele, Spiraal modellen en overzicht van de agile mindset
  3. Stel een methodologie voor die het meest geschikt is voor een gegeven situatie

Optioneel

Machine Learning

  • Ik heb eigenlijk een meer theoretische Machine Learning cursus aanbevolen door Andrew Ng
  • Zelfs al is het enigszins verouderd, hij leert het concept goed en is nog steeds een van de beste machine learning cursussen die er zijn na vele jaren.

Deep Learning

  • In vijf cursussen leert u de fundamenten van Deep Learning, begrijpt u hoe u neurale netwerken kunt bouwen, en leert u hoe u succesvolle machine learning-projecten kunt leiden. Je zult al deze ideeën oefenen in Python en in TensorFlow, die ze zullen leren.
  • Momenteel zit ik midden in het doen van deze cursus en het wordt gepresenteerd op een eenvoudig te begrijpen manier. Een ander goed punt is dat Andrew Ng Python gebruikt in plaats van octave.
  • Een andere geweldige gratis bron is fast.ai

Conclusie

Hoewel ik de modules heb aanbevolen op basis van universitaire cursussen, kun je mixen en matchen om het beste curriculum voor jezelf te maken. Als dit artikel je geholpen heeft, help me dan om het te delen met je vrienden! Als je meer wilt weten over mij en wat ik doe, bezoek dan mijn website http://www.chiayong.me/

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.