-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathhow-do-i-learn.html
229 lines (213 loc) · 19.9 KB
/
how-do-i-learn.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
<!DOCTYPE html>
<html lang="en">
<head>
<link href='//fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,700,400italic' rel='stylesheet' type='text/css'>
<link rel="stylesheet" type="text/css" href="http://www.emadmokhtar.com/theme/stylesheet/style.min.css">
<link rel="stylesheet" type="text/css" href="http://www.emadmokhtar.com/theme/stylesheet/pygments.min.css">
<link rel="stylesheet" type="text/css" href="http://www.emadmokhtar.com/theme/stylesheet/font-awesome.min.css">
<link href="http://www.emadmokhtar.com/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Emad Mokhtar's Framework Atom">
<link href="http://www.emadmokhtar.com/feeds/all.rss.xml" type="application/rss+xml" rel="alternate" title="Emad Mokhtar's Framework RSS">
<link rel="shortcut icon" href="http://www.emadmokhtar.com/images/favicon.ico" type="image/x-icon">
<link rel="icon" href="http://www.emadmokhtar.com/images/favicon.ico" type="image/x-icon">
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="robots" content="" />
<meta name="author" content="EmadMokhtar" />
<meta name="description" content="I’ve got many questions from young developers who want to learn programming and be professionals, I thought of writing this article to give them a glance about how I learn software stuff. I want to tell you I’m still learning and I’ll always pursuit knowledge and being professional software craftsman, and you should consider the same, believe me if you stop learning, you’ll become outdated in this field, and you’ll suck, I met developers with big fat years of experience but they are outdated since 5 years and they can’t go with new technologies anymore, ask any doctor or lawyer and he’ll tell you this craft is about leaning and learning and gaining knowledge. Learning development is separated into two parts: Dealing with human. Dealing with computer. Dealing with human Dealing with human like dealing with client, don’t tell me I just want to code dude, no sometime if not all of the time you have to deal with the clients, think of it as you have your own company you’re entrepreneur now, Do you want to write code only? or you want to create success product by gathering the right …" />
<meta name="keywords" content="carftsmanship, coder, developer, learn, programmer">
<meta property="og:site_name" content="Emad Mokhtar's Framework"/>
<meta property="og:title" content="How do I learn?"/>
<meta property="og:description" content="I’ve got many questions from young developers who want to learn programming and be professionals, I thought of writing this article to give them a glance about how I learn software stuff. I want to tell you I’m still learning and I’ll always pursuit knowledge and being professional software craftsman, and you should consider the same, believe me if you stop learning, you’ll become outdated in this field, and you’ll suck, I met developers with big fat years of experience but they are outdated since 5 years and they can’t go with new technologies anymore, ask any doctor or lawyer and he’ll tell you this craft is about leaning and learning and gaining knowledge. Learning development is separated into two parts: Dealing with human. Dealing with computer. Dealing with human Dealing with human like dealing with client, don’t tell me I just want to code dude, no sometime if not all of the time you have to deal with the clients, think of it as you have your own company you’re entrepreneur now, Do you want to write code only? or you want to create success product by gathering the right …"/>
<meta property="og:locale" content="en_US"/>
<meta property="og:url" content="http://www.emadmokhtar.com/how-do-i-learn.html"/>
<meta property="og:type" content="article"/>
<meta property="article:published_time" content="2013-04-20 17:34:00+03:00"/>
<meta property="article:modified_time" content=""/>
<meta property="article:author" content="http://www.emadmokhtar.com/author/emadmokhtar.html">
<meta property="article:section" content="Developer"/>
<meta property="article:tag" content="carftsmanship"/>
<meta property="article:tag" content="coder"/>
<meta property="article:tag" content="developer"/>
<meta property="article:tag" content="learn"/>
<meta property="article:tag" content="programmer"/>
<meta property="og:image" content="http://www.emadmokhtar.com/images/profile.jpg">
<title>Emad Mokhtar's Framework – How do I learn?</title>
</head>
<body>
<aside>
<div>
<a href="http://www.emadmokhtar.com">
<img src="http://www.emadmokhtar.com/images/profile.jpg" alt="" title="">
</a>
<h1><a href="http://www.emadmokhtar.com"></a></h1>
<p>Geek developer who's in search of code perfection.</p>
<nav>
<ul class="list">
<li><a href="http://www.emadmokhtar.com">Blog</a></li>
<li><a href="http://www.emadmokhtar.com/pages/podcasts.html#podcasts">Podcasts</a></li>
<li><a href="http://www.emadmokhtar.com/pages/projects.html#projects">Projects</a></li>
<li><a href="https://emadmokhtar.github.io/resume" target="_blank">Resume</a></li>
</ul>
</nav>
<ul class="social">
<li><a class="sc-envelope-o" href="mailto:emad@emadmokhtar.com" target="_blank"><i class="fa fa-envelope-o"></i></a></li>
<li><a class="sc-github" href="https://www.github.com/EmadMokhtar" target="_blank"><i class="fa fa-github"></i></a></li>
<li><a class="sc-linkedin" href="https://www.linkedin.com/in/emadmokhtar/" target="_blank"><i class="fa fa-linkedin"></i></a></li>
<li><a class="sc-stack-overflow" href="http://stackoverflow.com/users/373051/emad-mokhtar" target="_blank"><i class="fa fa-stack-overflow"></i></a></li>
<li><a class="sc-facebook" href="https://www.facebook.com/emadmokhtarframework/" target="_blank"><i class="fa fa-facebook"></i></a></li>
<li><a class="sc-twitter" href="https://twitter.com/emadmokhtar" target="_blank"><i class="fa fa-twitter"></i></a></li>
</ul>
</div>
</aside>
<main>
<nav>
<a href="http://www.emadmokhtar.com">Home</a>
<a href="https://emadmokhtar.github.io/resume">Resume</a>
<a href="http://www.emadmokhtar.com/feeds/all.atom.xml">Atom</a>
<a href="http://www.emadmokhtar.com/feeds/all.rss.xml">RSS</a>
</nav>
<article>
<header>
<h1 id="how-do-i-learn">How do I learn?</h1>
<p>Posted on Sat 20 April 2013 in <a href="http://www.emadmokhtar.com/category/developer.html">Developer</a> <b>Read in 4 min.</b></p>
</header>
<div>
<p><img alt="abraham lincoln qoute" src="http://www.emadmokhtar.com/images/abrahamlincoln109275.jpg"></p>
<p>I’ve got many questions from young developers who want to learn programming and be professionals, I thought of writing this article to give them a glance about how I learn software stuff. I want to tell you I’m still learning and I’ll always pursuit knowledge and being professional software craftsman, and you should consider the same, believe me if you stop learning, you’ll become outdated in this field, and you’ll suck, I met developers with big fat years of experience but they are outdated since 5 years and they can’t go with new technologies anymore, ask any doctor or lawyer and he’ll tell you this craft is about leaning and learning and gaining knowledge.</p>
<p>Learning development is separated into two parts:</p>
<ol>
<li>Dealing with human.</li>
<li>Dealing with computer.</li>
</ol>
<h1>Dealing with human</h1>
<p>Dealing with human like dealing with client, don’t tell me I just want to code dude, no sometime if not all of the time you have to deal with the clients, think of it as you have your own company you’re entrepreneur now, Do you want to write code only? or you want to create success product by gathering the right requirements from clients and work on them, and then deliver this product, How will you do this if you want to write code only?</p>
<p>Dealing with human is dealing with team, crap again dude I want to put my headphones listen to music, go to the zone, and write code, nah good developers are good team player, to help your team-mate in the project, raise flag when you have a problem, or peer programming, you must have dealing with humans skill.</p>
<p>You’ll learn these skills during your work, I don’t have a screen cast, video training, or book…oh wait wait actually I know some books taking about this:</p>
<p><a href="http://www.amazon.com/gp/product/0932633439/ref=as_li_ss_tl?ie=UTF8&camp=1789&creative=390957&creativeASIN=0932633439&linkCode=as2&tag=monsblo08-20">Peopleware: Productive Projects and Teams (Second Edition)</a>
<img alt="Peopleware: Productive Projects and Teams (Second Edition)" src="http://www.assoc-amazon.com/e/ir?t=monsblo08-20&l=as2&o=1&a=0932633439"></p>
<p><img alt="Peopleware: Productive Projects and Teams (Second Edition)" src="http://www.assoc-amazon.com/e/ir?t=monsblo08-20&l=as2&o=1&a=1449302440"> <img alt="Peopleware: Productive Projects and Teams (Second Edition)" src="http://www.assoc-amazon.com/e/ir?t=monsblo08-20&l=as2&o=1&a=0932633439">
<img alt="1451377" src="http://www.emadmokhtar.com/images/1451377.jpg"></p>
<p><a href="http://www.amazon.com/gp/product/1449302440/ref=as_li_ss_tl?ie=UTF8&camp=1789&creative=390957&creativeASIN=1449302440&linkCode=as2&tag=monsblo08-20">Team Geek: A Software Developer's Guide to Working Well with
Others</a>
<img alt="Team Geek: A Software Developer's Guide to Working Well with
Others" src="http://www.assoc-amazon.com/e/ir?t=monsblo08-20&l=as2&o=1&a=1449302440"></p>
<p><img alt="51N8dmGcllL" src="http://www.emadmokhtar.com/images/51N8dmGcllL.jpg"></p>
<h1>Dealing with computer:</h1>
<p>Dealing with computer is programming, In my opinion programming learning is in two stages, first learn how to code, and second leaning how to write code right or how to produce clean code. You’ll learn well if you learn from your mistakes, personally I learnt from my mistakes, every time I made a mistake I was very sad and in the beginning I made a lot of silly mistakes, please be passionate, never give up, keep going, and learn from it, I know it’s so hard in the beginning but you’ll love what you’re doing.</p>
<h1>Craftsmanship:</h1>
<blockquote>
<p><strong>Software craftsmanship</strong> is an approach to software development that
emphasizes the coding skills of the software developers themselves. It
is a response by software developers to the perceived ills of the
mainstream software industry, including the prioritization of
financial concerns over developer accountability.</p>
<p><a href="http://en.wikipedia.org/wiki/Software_craftsmanship">wikipedia</a></p>
</blockquote>
<p>In Clean Code book Martin Bob aka Uncle Bob wrote craftsmanship is
separated into two parts Knowledge and Experience. Knowledge is the
learn how to, and Experience is using knowledge to build something, so
learn and practice by doing something, if you can’t build something with
what you just learn you can build something as side project, <a href="https://speakerdeck.com/sachag/side-projects">this
slides</a> encourage me to do
some side projects</p>
<script async class="speakerdeck-embed" data-id="508b4413c21140000200a7b7" data-ratio="1.33333333333333" src="//speakerdeck.com/assets/embed.js"></script>
<h1>Learning Material:</h1>
<p>This list of materials where you can learn something some are free and some are paid, so feel free to add yours in comments and give me your feedback about them.</p>
<h2>Video Training website:</h2>
<ul>
<li><a href="http://www.pluralsight.com/training">Pluralsight</a></li>
<li><a href="https://peepcode.com/">PeepCode</a></li>
<li><a href="http://tekpub.com/">TekPub</a></li>
<li><a href="https://www.udemy.com">Udemy</a></li>
<li><a href="http://www.codeschool.com/">CodeSchool</a></li>
<li><a href="http://www.campusmvp.net/">campusMVP</a></li>
</ul>
<h2>Interactive Course:</h2>
<ul>
<li><a href="http://www.codecademy.com/">Code Academy</a></li>
<li><a href="http://rubymonk.com/">RubyMonk</a></li>
<li><a href="http://code.he.net/">Code Hurricane Electric</a></li>
</ul>
<h2>Books:</h2>
<p>Books for developers are like water for fish, you need to read, read, and read. Technology focused books like ASP.NET books there are many of them in market but make sure you pick nice ones first, personally I search for a book using Amazon read reviews and boom I pick on and read it. There are books I recommended but it’s not technology focused it focus in making you better developer:</p>
<h1>Recommended Books:</h1>
<p><a href="http://www.amazon.com/gp/product/B0050JLC9Y/ref=as_li_ss_tl?ie=UTF8&camp=1789&creative=390957&creativeASIN=B0050JLC9Y&linkCode=as2&tag=monsblo08-20">The Clean Coder: A Code of Conduct for Professional Programmers (Robert C. Martin Series)</a></p>
<p><img alt="0000.L" src="http://www.emadmokhtar.com/images/0000.L.jpg"></p>
<p><a href="http://www.amazon.com/gp/product/B001GSTOAM/ref=as_li_ss_tl?ie=UTF8&camp=1789&creative=390957&creativeASIN=B001GSTOAM&linkCode=as2&tag=monsblo08-20">Clean Code: A Handbook of Agile Software Craftsmanship</a>
<img alt="Clean Code" src="http://www.assoc-amazon.com/e/ir?t=monsblo08-20&l=as2&o=1&a=B001GSTOAM"></p>
<p><img alt="0132350882" src="http://www.emadmokhtar.com/images/0132350882.jpg"></p>
<p><img alt="Clean Code" src="http://www.assoc-amazon.com/e/ir?t=monsblo08-20&l=as2&o=1&a=B001GSTOAM">
<a href="http://www.amazon.com/gp/product/B000SEIBB8/ref=as_li_ss_tl?ie=UTF8&camp=1789&creative=390957&creativeASIN=B000SEIBB8&linkCode=as2&tag=monsblo08-20">Design Patterns: Elements of Reusable Object-Oriented Software</a>
<img alt="Design Patterns: Elements of Reusable Object-Oriented Software" src="http://www.assoc-amazon.com/e/ir?t=monsblo08-20&l=as2&o=1&a=B000SEIBB8"></p>
<p><img alt="51Q-RLSadrL" src="http://www.emadmokhtar.com/images/51Q-RLSadrL.jpg">]</p>
<p><img alt="Design Patterns: Elements of Reusable Object-Oriented Software" src="http://www.assoc-amazon.com/e/ir?t=monsblo08-20&l=as2&o=1&a=B000SEIBB8">
<a href="http://www.amazon.com/gp/product/B000SEGEKI/ref=as_li_ss_tl?ie=UTF8&camp=1789&creative=390957&creativeASIN=B000SEGEKI&linkCode=as2&tag=monsblo08-20">The Pragmatic Programmer: From Journeyman to Master</a>
<img alt="The Pragmatic Programmer: From Journeyman to Master" src="http://www.assoc-amazon.com/e/ir?t=monsblo08-20&l=as2&o=1&a=B000SEGEKI"></p>
<p><img alt="41F1cZImneL" src="http://www.emadmokhtar.com/images/41F1cZImneL.jpg"></p>
<p><img alt="The Pragmatic Programmer: From Journeyman to Master" src="http://www.assoc-amazon.com/e/ir?t=monsblo08-20&l=as2&o=1&a=B000SEGEKI">
<a href="http://www.amazon.com/gp/product/B004OR1XGK/ref=as_li_ss_tl?ie=UTF8&camp=1789&creative=390957&creativeASIN=B004OR1XGK&linkCode=as2&tag=monsblo08-20">Code Complete</a>
<img alt="Code Complete" src="http://www.assoc-amazon.com/e/ir?t=monsblo08-20&l=as2&o=1&a=B004OR1XGK"></p>
<p><img alt="Code Complete" src="http://www.assoc-amazon.com/e/ir?t=monsblo08-20&l=as2&o=1&a=B004OR1XGK">
<img alt="51nWkLCu1SL" src="http://www.emadmokhtar.com/images/51nWkLCu1SL.jpg"></p>
<p><a href="http://www.amazon.com/gp/product/B008HUMTO0/ref=as_li_ss_tl?ie=UTF8&camp=1789&creative=390957&creativeASIN=B008HUMTO0&linkCode=as2&tag=monsblo08-20">Effective Programming: More Than Writing Code</a>
<img alt="Effective Programming: More Than Writing Code" src="http://www.assoc-amazon.com/e/ir?t=monsblo08-20&l=as2&o=1&a=B008HUMTO0"></p>
<p><img alt="51ysOldcmqL" src="http://www.emadmokhtar.com/images/51ysOldcmqL.jpg">
<img alt="Effective Programming: More Than Writing Code" src="http://www.assoc-amazon.com/e/ir?t=monsblo08-20&l=as2&o=1&a=B008HUMTO0"></p>
<p><a href="http://www.amazon.com/gp/product/B00AYQNR5U/ref=as_li_ss_tl?ie=UTF8&camp=1789&creative=390957&creativeASIN=B00AYQNR5U&linkCode=as2&tag=monsblo08-20">The Passionate Programmer: Creating a Remarkable Career in Software Development (Pragmatic Life)</a>
<img alt="The Passionate Programmer: Creating a Remarkable Career in Software Development (Pragmatic Life)" src="http://www.assoc-amazon.com/e/ir?t=monsblo08-20&l=as2&o=1&a=B00AYQNR5U"></p>
<p><img alt="The Passionate Programmer: Creating a Remarkable Career in Software Development (Pragmatic Life)" src="http://www.assoc-amazon.com/e/ir?t=monsblo08-20&l=as2&o=1&a=B00AYQNR5U">
<img alt="5194SMyRiL" src="http://www.emadmokhtar.com/images/5194SMyRiL.jpg"></p>
</div>
<div class="tag-cloud">
<p>
<a href="http://www.emadmokhtar.com/tag/carftsmanship.html">carftsmanship</a>
<a href="http://www.emadmokhtar.com/tag/coder.html">coder</a>
<a href="http://www.emadmokhtar.com/tag/developer.html">developer</a>
<a href="http://www.emadmokhtar.com/tag/learn.html">learn</a>
<a href="http://www.emadmokhtar.com/tag/programmer.html">programmer</a>
</p>
</div>
<div id="disqus_thread"></div>
<script type="text/javascript">
var disqus_shortname = 'emadmokhtarsframework';
(function() {
var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
})();
</script>
<noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript" rel="nofollow">comments powered by Disqus.</a></noscript>
</article>
<footer>
<p>© Emad Mokhtar </p>
<p>Built using <a href="http://getpelican.com" target="_blank">Pelican</a> - <a href="https://github.com/alexandrevicenzi/flex" target="_blank">Flex</a> theme by <a href="http://alexandrevicenzi.com" target="_blank">Alexandre Vicenzi</a></p> </footer>
</main>
<!-- Google Analytics -->
<script type="text/javascript">
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-11401860-2', 'auto');
ga('send', 'pageview');
</script>
<!-- End Google Analytics -->
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "BlogPosting",
"name": "How do I learn?",
"headline": "How do I learn?",
"datePublished": "2013-04-20 17:34:00+03:00",
"dateModified": "",
"author": {
"@type": "Person",
"name": "EmadMokhtar",
"url": "http://www.emadmokhtar.com/author/emadmokhtar.html"
},
"image": "http://www.emadmokhtar.com/images/profile.jpg",
"url": "http://www.emadmokhtar.com/how-do-i-learn.html",
"description": "I’ve got many questions from young developers who want to learn programming and be professionals, I thought of writing this article to give them a glance about how I learn software stuff. I want to tell you I’m still learning and I’ll always pursuit knowledge and being professional software craftsman, and you should consider the same, believe me if you stop learning, you’ll become outdated in this field, and you’ll suck, I met developers with big fat years of experience but they are outdated since 5 years and they can’t go with new technologies anymore, ask any doctor or lawyer and he’ll tell you this craft is about leaning and learning and gaining knowledge. Learning development is separated into two parts: Dealing with human. Dealing with computer. Dealing with human Dealing with human like dealing with client, don’t tell me I just want to code dude, no sometime if not all of the time you have to deal with the clients, think of it as you have your own company you’re entrepreneur now, Do you want to write code only? or you want to create success product by gathering the right …"
}
</script></body>
</html>