Jifunze Computer Science bila kwenda chuo

luse

JF-Expert Member
Jun 9, 2012
592
1,043
Technology ni kati ya field ambazo inakua na kubadilika kila siku. Na hii imefanya watu wengi wawe interested nayo, maybe it's because of how big an impact technology has in our lives au the way people can create amazing things kwa kutumia technology. Whatever the reason is, hii imefanya watu wengi wawe interested na mambo ya technology hasa programming.

Through programming, watu wameweza kutengeneza simple things all the way to complex softwares ambazo zina-run critical infrastructures mbalimbali. Na hii nadhani ndo inawa attract watu to programming, ile idea ya ku-create kitu and simplifying a apart of your job, life or work au watching your program being used by hundreds of people, is very satisfying.

Fortunately for most people ni kwamba programming ni very easy to get into,na hii imefanya the field kuwa na alot of self taught programmers/developers. Kupitia languages kama Python, ni rahisi kwa beginner kuanza kujifunza programming and later on move on to languages such as Java, C etc ambazo mara nyingi ni much harder for a beginner to get into.

Sema the thing is with being self taught, ni kuwa ni rahisi ku-miss the fundamentals if you don't know what you are doing.Cause watu wengi do this wakiwa wanajifunza programming, they pick a language, learn it, and then go do a project with it. Rinse and repeat for a couple of languages until they have a good understanding ya language kadhaa za programming. Wakati their counterparts ambao wanachukua computer science in a formal setting, huwa they have a firm foundation in computer science theory, e.g kwa kujifunza vitu kama data structures, algorithms n.k ambazo huwa ni very helpful huko mbeleni.

Luckily ni kuwa kutokana na advancement in technology and different online platforms, mtu unaweza ukapata a world class education at the comfort of your home, all by studying online. Hii ni very helpful kwa mtu ambae ana majukumu mengine, au ambae can't afford paying for university fees, au ambae anapenda kusoma at their own pace, sababu ziko nyingi. Sema cha muhimu ni mtu uwe committed, pia uwe na discipline, cause kujifunza online ni tofauti na kwenda shule ambapo you have a teacher to guide you and pia unaweza ukamfuata face to face kama hujaelewa kitu. Ukiwa unajifunza online, unless you are paying for those courses, mara nyingi you are left on your own kutafuta extra information kama hujaelewa kitu. Lakini hii isiwa-discourage most people.

Wote tumeshawaisikia of all those developers/software engineers ambao hawakusoma computer science ila ni self taught, but they wen't on and got hired at big name companies au created amazing things.

Here are just a few: Kuna Elon Musk, Kevin Systrom - cofounder of Instagram, David Karp - founder of Tumblr etc

Ila just for inspiration nitaongelea watu wawili in particular ambao wali-document their process as they learnt computer science, hao sio famous per se ila ni just regular guys ambao through commitment and discipline waliweza kjifunza Computer Science.

1. John Washam, huyu ni self taught web developer, ila his aim ni alikuwa anataka at ku-work at big tech companies, so akaamua kucreate a computer science study plan ambayo itamuwezesha ku-become a software engineer, baadae alikuja kuwa hired na Amazon. Unaweza ukaisoma study plan yake hapa: GitHub - jwasham/coding-interview-university: A complete computer science study plan to become a software engineer.

2. Huyu wapili ni impressive, nimekuwa nikifuatilia his blog for a very long time. Blog yake inahusiana na maswala ya learning and personal development, it's really good, i urge everyone to check it out. Sasa huwa anapenda kujipa challenges mbalimbali zinahusiana na maswala ya learning, and the most impressive so far ni pale alipoamua ku-learn MIT's 4 year computer science curriculum in 1 year! and surprisingly aliweza kumaliza. Unaweza ukasoma about his challenge hapa: MIT Challenge

Sasa turudi kwenye mada kuu, jinsi ya kusoma Computer Science bila kwenda chuo. Recently katika pitapita zangu mtandaoni nilikutana na link ambayo inaprovide curriculum kwa mtu ambae anataka kujifunza Computer Science at their own pace. So nikaona sio mbaya ku-share na you guys. Hii curiculum takes you from the very basic all the way to advance subjects. The good thing ni kuwa all the courses are free and zinakuwa offered by some of the best universities in the world.

Curriculum yenyewe ni hii hapa: GitHub - open-source-society/computer-science: Path to a free self-taught education in Computer Science!

Nita-list briefly the courses ambazo utajifunza pamoja na chuo gani zinafundisha.Course zote hizi zitachukuliwa katika platforms kama, Edx Coursera, MIT Open Courseware n.k Lakini most of them ziko available through the first two platforms.

Here is the list of the courses in order:

Introduction to Computer Science
Intro to Computer Science - CS50 - Harvard University
Introduction to Computer Science and Programming using Python - MIT

Core CS

Core Programming

How to Code - Simple Data - The University of British Columbia
How to Code - Complex Data - The University of British Columbia
Software Construction - Data Abstraction - The University of British Columbia
Software Construction - Object Oriented Design - The University of British Columbia
Programming Languages - Part A - The University of Washington
Programming Languages - Part B - The University of Washington
Programming Languages - Part C - The University of Washington

Core Maths
Linear Algebra - Foundations to Frontiers - University of Texas at Austin
Calculus One - The Ohio State University
Calculus Two - Sequences and series - The Ohio State University
Mathematics for Computer Science - MIT

Core Systems
Build a Modern Computer from First Principle: From Nand to Tetris - Hebrew University of Jerusalem
Build a Modern Computer from First Principle: From Nand to Tetris Part II - Hebrew University of Jerusalem
Introduction to Computer Networking - Stanford University

Core Theory
Algorithms (1/4) - Stanford University
Algorithms (2/4) - Stanford University
Algorithms (3/4) - Stanford University
Algorithms (4/4) - Stanford University

Core Applications
Databases - Stanford University
Machine Learning - Stanford University
Computer Graphics - University of California San Diego
Cryptography I - Stanford University
Software Engineering: Introduction - The University of British Columbia
Software Development Capstone Project - The University of British Columbia

Ukishamaliza kusoma course zote kwenye Core CS, mtu utachukua course mbalimbali za Advanced CS kulingana na interest zako, sio lazima uchukue course zote za Advanced CS. After that unamalizia kwa kuchukua specialization moja iliyopo under Advanced Applications.

Advanced CS

Advanced Programming
Compilers - Stanford
Software Debugging - Udacity
Software Testing - Udacity
LAFF: Programming for Correctness - The University of Texas at Austin
Introduction to Parallel Programming - Udacity
Software Architecture and Design - Georgia Tech

Advanced Maths
Introduction to Mathematical Thinking - Stanford University
Calculus: Parametric Equations and Polar Coordinates - MIT
Multivariable Calculus - MIT
Introduction to Probability - The Science of Uncertainity - MIT

Advanced Systems
Electricity and Magnetism, Part 1 - Rice University
Electricity and Magnetism, Part 2 - Rice University
Computation Structures: Digital Circuits - MIT
Computation Structures: Computer Architecture - MIT
Computation Structures: Computer Organisation - MIT
Hack the Kernel - ops-class.org

Advanced Theory
Introduction to Logic - Stanford University
Automata Theory - Stanford University
Reliable Distributed Systems, Part 1 - KTH Royal Institute of Technology
Reliable Distributed Systems, Part 2 - KTH Royal Institute of Technology
Computational Geometry - Tsinghua University
Introduction to Formal Concept Analysis - Higher School of Economics
Game Theory - Stanford University and University of British Columbia

Advance Applications
Robotics(Specialization) - University of Pennsylvania
Data Mining(Specialization) - University of Illinois
Big Data(Specialization) - University of California San Diego
Internet of Things(Specialization) - University of California San Diego
Cloud Computing(Specialization) - University of Illinois
Full Stack Web Development(Specialization) - The Hong Kong University of Science and Technology
Data Science(Specialization) - Johns Hopkins University
Functional Programming in Scala(Specialization) - Ecole Polytechnique Federale De Lausanne

Kwahiyo mtu ukifanikiwa kumaliza curriculum yote hii utakuwa na a firm foundation katika maswala ya computer science. Kinachohitajika ni juhudi yako na kuwa disciplined. Once again unaweza ukatembelea link ya mtaala huu, Github, ili uweze kupata extra information kama course hizi zinachukua muda gani, kupata link to the course, pia kuhusu zinacover vitu gani na unatakiwa uwe unafahamu nini kabla ya kujiunga katika baadhi ya course hizi.
Here is the link once again: GitHub - open-source-society/computer-science: Path to a free self-taught education in Computer Science!

Kama mtu uko serious, unaweza ukamaliza mtaala mzima in 2 - 3 years, all depending on how much time you have. Since course zote ni self paced. Watu wanaweza wakasema hiyo miaka ni mingi, but i'd say its worth it, kama mtu yuko interested in Computer Science na alitaka awe well rounded katika fundamentals za Computer Science.

Good luck!
 
Duuh wabongo ninavowajua kumaliza hizo coarse inahitaji wajitoe na inatakiwa awepo mtu wakukagua maendeleo nakuwapa mazoezi. Manake ni coarse za chuo za miaka mitatu hizo.


Ila shortcut kwa anaetaka kuwa programmer ningeshauri asome javaScrip deep.

Acheze kwenye kitu kinaitwa MEAN STACK

MongoDB

Express.Js

AngulaJs

Node.js

Asome kokote ila kipimo chake ajiunge na Codewar

Atanufaika sana kwa mda mchache. Ata soma JavaScript once ata apply everywhere.

So far ulichokisema niushauri mzuri hongera

Sent using Jamii Forums mobile app
 
Duuh wabongo ninavowajua kumaliza hizo coarse inahitaji wajitoe na inatakiwa awepo mtu wakukagua maendeleo nakuwapa mazoezi. Manake ni coarse za chuo za miaka mitatu hizo.


Ila shortcut kwa anaetaka kuwa programmer ningeshauri asome javaScrip deep.

Acheze kwenye kitu kinaitwa MEAN STACK

MongoDB

Express.Js

AngulaJs

Node.js

Asome kokote ila kipimo chake ajiunge na Codewar

Atanufaika sana kwa mda mchache. Ata soma JavaScript once ata apply everywhere.

So far ulichokisema niushauri mzuri hongera

Sent using Jamii Forums mobile app
Mkuu uzuri wa hizi course ni kuwa zote zinatoa assignments, pamoja na solutions to those assignments. Zingine hadi wanakusahishia hizo assignments at no extra cost. There are tests also.

Kwahiyo ni rahisi kwa mtu kujipima. Mtu akiwa stuck some where all they have to do is google, au kuangalia videos youtube, au kuuliza maswali katika online forums kama the stack exchange network. Tena the stack exchange network inabidi iwe the first thing people bookmark kwasababu ni a helpful network of Q&A sites ambapo watu wanaweza kuuliza maswali ya aina mbalimbali.

JavaScript is good kwa mtu ambae yuko interested na web development. Hasa mambo ya front end.
 
Technology ni kati ya field ambazo inakua na kubadilika kila siku. Na hii imefanya watu wengi wawe interested nayo, maybe it's because of how big an impact technology has in our lives au the way people can create amazing things kwa kutumia technology. Whatever the reason is, hii imefanya watu wengi wawe interested na mambo ya technology hasa programming.

Through programming, watu wameweza kutengeneza simple things all the way to complex softwares ambazo zina-run critical infrastructures mbalimbali. Na hii nadhani ndo inawa attract watu to programming, ile idea ya ku-create kitu and simplifying a apart of your job, life or work au watching your program being used by hundreds of people, is very satisfying.

Fortunately for most people ni kwamba programming ni very easy to get into,na hii imefanya the field kuwa na alot of self taught programmers/developers. Kupitia languages kama Python, ni rahisi kwa beginner kuanza kujifunza programming and later on move on to languages such as Java, C etc ambazo mara nyingi ni much harder for a beginner to get into.

Sema the thing is with being self taught, ni kuwa ni rahisi ku-miss the fundamentals if you don't know what you are doing.Cause watu wengi do this wakiwa wanajifunza programming, they pick a language, learn it, and then go do a project with it. Rinse and repeat for a couple of languages until they have a good understanding ya language kadhaa za programming. Wakati their counterparts ambao wanachukua computer science in a formal setting, huwa they have a firm foundation in computer science theory, e.g kwa kujifunza vitu kama data structures, algorithms n.k ambazo huwa ni very helpful huko mbeleni.

Luckily ni kuwa kutokana na advancement in technology and different online platforms, mtu unaweza ukapata a world class education at the comfort of your home, all by studying online. Hii ni very helpful kwa mtu ambae ana majukumu mengine, au ambae can't afford paying for university fees, au ambae anapenda kusoma at their own pace, sababu ziko nyingi. Sema cha muhimu ni mtu uwe committed, pia uwe na discipline, cause kujifunza online ni tofauti na kwenda shule ambapo you have a teacher to guide you and pia unaweza ukamfuata face to face kama hujaelewa kitu. Ukiwa unajifunza online, unless you are paying for those courses, mara nyingi you are left on your own kutafuta extra information kama hujaelewa kitu. Lakini hii isiwa-discourage most people.

Wote tumeshawaisikia of all those developers/software engineers ambao hawakusoma computer science ila ni self taught, but they wen't on and got hired at big name companies au created amazing things.

Here are just a few: Kuna Elon Musk, Kevin Systrom - cofounder of Instagram, David Karp - founder of Tumblr etc

Ila just for inspiration nitaongelea watu wawili in particular ambao wali-document their process as they learnt computer science, hao sio famous per se ila ni just regular guys ambao through commitment and discipline waliweza kjifunza Computer Science.

1. John Washam, huyu ni self taught web developer, ila his aim ni alikuwa anataka at ku-work at big tech companies, so akaamua kucreate a computer science study plan ambayo itamuwezesha ku-become a software engineer, baadae alikuja kuwa hired na Amazon. Unaweza ukaisoma study plan yake hapa: GitHub - jwasham/coding-interview-university: A complete computer science study plan to become a software engineer.

2. Huyu wapili ni impressive, nimekuwa nikifuatilia his blog for a very long time. Blog yake inahusiana na maswala ya learning and personal development, it's really good, i urge everyone to check it out. Sasa huwa anapenda kujipa challenges mbalimbali zinahusiana na maswala ya learning, and the most impressive so far ni pale alipoamua ku-learn MIT's 4 year computer science curriculum in 1 year! and surprisingly aliweza kumaliza. Unaweza ukasoma about his challenge hapa: MIT Challenge

Sasa turudi kwenye mada kuu, jinsi ya kusoma Computer Science bila kwenda chuo. Recently katika pitapita zangu mtandaoni nilikutana na link ambayo inaprovide curriculum kwa mtu ambae anataka kujifunza Computer Science at their own pace. So nikaona sio mbaya ku-share na you guys. Hii curiculum takes you from the very basic all the way to advance subjects. The good thing ni kuwa all the courses are free and zinakuwa offered by some of the best universities in the world.

Curriculum yenyewe ni hii hapa: GitHub - open-source-society/computer-science: Path to a free self-taught education in Computer Science!

Nita-list briefly the courses ambazo utajifunza pamoja na chuo gani zinafundisha.Course zote hizi zitachukuliwa katika platforms kama, Edx Coursera, MIT Open Courseware n.k Lakini most of them ziko available through the first two platforms.

Here is the list of the courses in order:

Introduction to Computer Science
Intro to Computer Science - CS50 - Harvard University
Introduction to Computer Science and Programming using Python - MIT

Core CS

Core Programming

How to Code - Simple Data - The University of British Columbia
How to Code - Complex Data - The University of British Columbia
Software Construction - Data Abstraction - The University of British Columbia
Software Construction - Object Oriented Design - The University of British Columbia
Programming Languages - Part A - The University of Washington
Programming Languages - Part B - The University of Washington
Programming Languages - Part C - The University of Washington

Core Maths
Linear Algebra - Foundations to Frontiers - University of Texas at Austin
Calculus One - The Ohio State University
Calculus Two - Sequences and series - The Ohio State University
Mathematics for Computer Science - MIT

Core Systems
Build a Modern Computer from First Principle: From Nand to Tetris - Hebrew University of Jerusalem
Build a Modern Computer from First Principle: From Nand to Tetris Part II - Hebrew University of Jerusalem
Introduction to Computer Networking - Stanford University

Core Theory
Algorithms (1/4) - Stanford University
Algorithms (2/4) - Stanford University
Algorithms (3/4) - Stanford University
Algorithms (4/4) - Stanford University

Core Applications
Databases - Stanford University
Machine Learning - Stanford University
Computer Graphics - University of California San Diego
Cryptography I - Stanford University
Software Engineering: Introduction - The University of British Columbia
Software Development Capstone Project - The University of British Columbia

Ukishamaliza kusoma course zote kwenye Core CS, mtu utachukua course mbalimbali za Advaced CS kulingana na interest zako, sio lazima uchukue course zote za Advanced CS. After that unamalizia kwa kuchukua specialization moja iliyopo under Advanced Applications.

Advanced CS

Advanced Programming
Compilers - Stanford
Software Debugging - Udacity
Software Testing - Udacity
LAFF: Programming for Correctness - The University of Texas at Austin
Introduction to Parallel Programming - Udacity
Software Architecture and Design - Georgia Tech

Advanced Maths
Introduction to Mathematical Thinking - Stanford University
Calculus: Parametric Equations and Polar Coordinates - MIT
Multivariable Calculus - MIT
Introduction to Probability - The Science of Uncertainity - MIT

Advanced Systems
Electricity and Magnetism, Part 1 - Rice University
Electricity and Magnetism, Part 2 - Rice University
Computation Structures: Digital Circuits - MIT
Computation Structures: Computer Architecture - MIT
Computation Structures: Computer Organisation - MIT
Hack the Kernel - ops-class.org

Advanced Theory
Introduction to Logic - Stanford University
Automata Theory - Stanford University
Reliable Distributed Systems, Part 1 - KTH Royal Institute of Technology
Reliable Distributed Systems, Part 2 - KTH Royal Institute of Technology
Computational Geometry - Tsinghua University
Introduction to Formal Concept Analysis - Higher School of Economics
Game Theory - Stanford University and University of British Columbia

Advance Applications
Robotics(Specialization) - University of Pennsylvania
Data Mining(Specialization) - University of Illinois
Big Data(Specialization) - University of California San Diego
Internet of Things(Specialization) - University of California San Diego
Cloud Computing(Specialization) - University of Illinois
Full Stack Web Development(Specialization) - The Hong Kong University of Science and Technology
Data Science(Specialization) - Johns Hopkins University
Functional Programming in Scala(Specialization) - Ecole Polytechnique Federale De Lausanne

Kwahiyo mtu ukifanikiwa kumaliza curriculum yote hii utakuwa na a firm foundation katika maswala ya computer science. Kinachohitajika ni juhudi yako na kuwa disciplined. Once again unaweza ukatembelea link ya mtaala huu, Github, ili uweze kupata extra information kama course hizi zinachukua muda gani, kupata link to the course, pia kuhusu zinacover vitu gani na unatakiwa uwe unafahamu nini kabla ya kujiunga katika baadhi ya course hizi.
Here is the link once again: GitHub - open-source-society/computer-science: Path to a free self-taught education in Computer Science!

Kama mtu uko serious, unaweza ukamaliza mtaala mzima in 2 - 3 years, all depending on how much time you have. Since course zote ni self paced. Watu wanaweza wakasema hiyo miaka ni mingi, but i'd say its worth it, kama mtu yuko interested in Computer Science na alitaka awe well rounded katika fundamentals za Computer Science.

Good luck!

Article Nzuri sana na mimi nimejipa challenge yangu tokea majuzi ya kujifunza python language. Unaweza kunifuatilia kwenye uzi wangu huu na kunipa ushauri.
 

Similar Discussions

Back
Top Bottom