-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.html
497 lines (318 loc) · 24.7 KB
/
index.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
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="generator" content="Medhat Omr">
<title>Medhat Omr</title>
<link rel="stylesheet" type="text/css" href="https://cdn.bootcss.com/KaTeX/0.7.1/katex.min.css"/>
<meta name="author" content="Medhat Omr">
<link rel="icon" href="https://momr.github.io/assets/images/favicon.png">
<link rel="alternate" type="application/atom+xml" title="RSS" href="/atom.xml">
<meta name="description" content="This is my personal blog where I talk mainly about Software Engineering, Machine Learning, and Big Data.">
<meta property="og:type" content="blog">
<meta property="og:title" content="Medhat Omr">
<meta property="og:url" content="https://momr.github.io/index.html">
<meta property="og:site_name" content="Medhat Omr">
<meta property="og:description" content="This is my personal blog where I talk mainly about Software Engineering, Machine Learning, and Big Data.">
<meta property="og:locale" content="en">
<meta name="twitter:card" content="summary">
<meta name="twitter:title" content="Medhat Omr">
<meta name="twitter:description" content="This is my personal blog where I talk mainly about Software Engineering, Machine Learning, and Big Data.">
<meta name="twitter:creator" content="@MedhatOmr">
<meta property="og:image" content="https://momr.github.io/assets/images/profile.png"/>
<!--STYLES-->
<link rel="stylesheet" href="/assets/css/style-pz4cc6y13wt2trzqa8l3n9v0yykr0sstdaheem7qj628nhjmhp9pfawvqawz.min.css">
<!--STYLES END-->
<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-114364829-1', 'auto');
ga('send', 'pageview');
</script>
</head>
<body>
<div id="blog">
<!-- Define author's picture -->
<header id="header" data-behavior="1">
<i id="btn-open-sidebar" class="fa fa-lg fa-bars"></i>
<div class="header-title">
<a class="header-title-link" href="/ ">Medhat Omr</a>
</div>
<a class="header-right-picture "
href="#about">
<img class="header-picture" src="/assets/images/profile.png" alt="Author's picture"/>
</a>
</header>
<!-- Define author's picture -->
<nav id="sidebar" data-behavior="1">
<div class="sidebar-container">
<div class="sidebar-profile">
<a href="/#about">
<img class="sidebar-profile-picture" src="/assets/images/profile.png" alt="Author's picture"/>
</a>
<h4 class="sidebar-profile-name">Medhat Omr</h4>
<h5 class="sidebar-profile-bio"><p>I build Software, and I use Machine Learning besides Big Data to solve problems. My work is currently in commercial products in the market.</p>
</h5>
</div>
<ul class="sidebar-buttons">
<li class="sidebar-button">
<a class="sidebar-button-link "
href="/ "
title="Home"
>
<i class="sidebar-button-icon fa fa-lg fa-home" aria-hidden="true"></i>
<span class="sidebar-button-desc">Home</span>
</a>
</li>
<li class="sidebar-button">
<a class="sidebar-button-link "
href="/all-categories"
title="Categories"
>
<i class="sidebar-button-icon fa fa-lg fa-bookmark" aria-hidden="true"></i>
<span class="sidebar-button-desc">Categories</span>
</a>
</li>
<li class="sidebar-button">
<a class="sidebar-button-link "
href="/all-tags"
title="Tags"
>
<i class="sidebar-button-icon fa fa-lg fa-tags" aria-hidden="true"></i>
<span class="sidebar-button-desc">Tags</span>
</a>
</li>
<li class="sidebar-button">
<a class="sidebar-button-link "
href="/all-archives"
title="Archives"
>
<i class="sidebar-button-icon fa fa-lg fa-archive" aria-hidden="true"></i>
<span class="sidebar-button-desc">Archives</span>
</a>
</li>
<li class="sidebar-button">
<a class="sidebar-button-link "
href="#about"
title="About"
>
<i class="sidebar-button-icon fa fa-lg fa-question" aria-hidden="true"></i>
<span class="sidebar-button-desc">About</span>
</a>
</li>
</ul>
<ul class="sidebar-buttons">
<li class="sidebar-button">
<a class="sidebar-button-link " href="https://github.com/momr" target="_blank" rel="noopener" title="GitHub">
<i class="sidebar-button-icon fa fa-lg fa-github" aria-hidden="true"></i>
<span class="sidebar-button-desc">GitHub</span>
</a>
</li>
<li class="sidebar-button">
<a class="sidebar-button-link " href="https://stackoverflow.com/story/momr" target="_blank" rel="noopener" title="Stack Overflow">
<i class="sidebar-button-icon fa fa-lg fa-stack-overflow" aria-hidden="true"></i>
<span class="sidebar-button-desc">Stack Overflow</span>
</a>
</li>
<li class="sidebar-button">
<a class="sidebar-button-link " href="https://twitter.com/MedhatOmr" target="_blank" rel="noopener" title="Twitter">
<i class="sidebar-button-icon fa fa-lg fa-twitter" aria-hidden="true"></i>
<span class="sidebar-button-desc">Twitter</span>
</a>
</li>
<li class="sidebar-button">
<a class="sidebar-button-link " href="https://www.linkedin.com/in/MedhatOmr/" target="_blank" rel="noopener" title="LinkedIn">
<i class="sidebar-button-icon fa fa-lg fa-linkedin" aria-hidden="true"></i>
<span class="sidebar-button-desc">LinkedIn</span>
</a>
</li>
</ul>
<ul class="sidebar-buttons">
<li class="sidebar-button">
<a class="sidebar-button-link "
href="/atom.xml"
title="RSS"
>
<i class="sidebar-button-icon fa fa-lg fa-rss" aria-hidden="true"></i>
<span class="sidebar-button-desc">RSS</span>
</a>
</li>
</ul>
</div>
</nav>
<div id="main" data-behavior="1"
class="
hasCoverMetaIn
">
<section class="postShorten-group main-content-wrap">
<article class="postShorten postShorten--thumbnailimg-bottom" itemscope itemType="http://schema.org/BlogPosting">
<div class="postShorten-wrap">
<div class="postShorten-header">
<h1 class="postShorten-title" itemprop="headline">
<a class="link-unstyled" href="/2018/04/10/Ten-years-of-programming/">
Ten years of programming
</a>
</h1>
<div class="postShorten-meta">
<time itemprop="datePublished" datetime="2018-04-10T23:20:49-06:00">
Apr 10, 2018
</time>
</div>
</div>
<div class="postShorten-content" itemprop="articleBody">
<h1 id="what-did-i-learn-about-programming-after-10-years-from-my-graduation"><a class="markdownIt-Anchor" href="#what-did-i-learn-about-programming-after-10-years-from-my-graduation"></a> What did I learn about programming after 10 years from my graduation</h1>
<p>Ten years ago, I imagined myself writing this exact post, with that same title, but with slightly different content. In my ten years ago version, I imagined myself just writing about some wise advice or maybe some of my knowledge accumulated over the past ten years.</p>
<p>Today comes, and here is my answer to the question in the title of the post. Unfortunately no wise advice or knowledge more important than that programming is not easy. programming is not easy especially as most of programming books title say like teach yourself programming language X in 24 hours! or even days.</p>
<p>In fact, I learned it is quite the opposite, programming is hard, and I am not alone who finds it that way.</p>
<p>For those who don’t know me, well, you don’t know me for a good reason, I am an average person if not less than an average, who happens to perform well in both his undergrad and post grad schools, and somehow managed to survive accumulating ten years of experience in software development field (in fact about 6 years if I didn’t count my Ph.D. and compulsory military service).</p>
<p>Now, forget about me, and let’s see two examples of the top people in the field, and their opinion about how much time, and effort is required to master your skills in such field.</p>
<h2 id="1-from-teach-yourself-programming-in-ten-years-by-peter-norvig"><a class="markdownIt-Anchor" href="#1-from-teach-yourself-programming-in-ten-years-by-peter-norvig"></a> 1. From Teach Yourself Programming in Ten Years by Peter Norvig</h2>
<p>In the introduction of this amazing blog post by Peter Norvig, he says "Walk into any bookstore, and you’ll see how to Teach Yourself Java in 24 Hours alongside endless variations offering to teach C, SQL, Ruby, Algorithms, and so on in a few days or hours. The Amazon advanced search for [title: teach, yourself, hours, since: 2000 and found 512 such books. Of the top ten, nine are programming books (the other is about bookkeeping). Similar results come from replacing “teach yourself” with “learn” or “hours” with “days.”</p>
<p>Then Peter concludes that "People are either in a big rush to learn about programming, or that programming is somehow fabulously easier to learn than anything else. Felleisen et al. give a nod to this trend in their book How to Design Programs, when they say “Bad programming is easy. Idiots can learn it in 21 days, even if they are dummies.” The Abtruse Goose comic also had their take.<br>
"</p>
<p>I strongly recommend the whole post over <a href="http://norvig.com/21-days.html" target="_blank" rel="noopener">here</a></p>
<h2 id="2-from-an-advice-on-how-to-study-machine-learningdeep-learning-by-jeremy-howard"><a class="markdownIt-Anchor" href="#2-from-an-advice-on-how-to-study-machine-learningdeep-learning-by-jeremy-howard"></a> 2. From an advice on how to study Machine Learning/Deep Learning by Jeremy Howard</h2>
<p>“It took me months to create this notebook. Not months of progress, but months of continuous failure. The difference between those who succeed and those who don’t are the ones that succeed didn’t give up!” said Jeremy Howard</p>
<p>Then he continued, “Also, I spend at least 50% of everyday learning and/or practicing new things, and have done so since I made that commitment at the age of 18. (Nowadays it’s about 90% of my day). <strong>I don’t watch TV or play computer games or get lost in social media</strong> so I maximize the time I spend on things I care about. So over time, I’ve gotten faster at doing stuff, since I’ve been practicing and learning lots.”</p>
<p>He also talked about one of his MOOC students, Louis Monier, who is also known as the “father of internet search” - he was the CTO of the first big web search company (Alta Vista). Jeremy said that “Louis Monier’s a pretty smart guy! He told me he had watched the part 1 (2017) videos so many times that he knew much of them off by heart. He also practiced on a home deep learning project whilst watching the videos, and IIRC he spent something like 6 months working on that. If Louis needs to study this much, then the rest of us should probably expect to work even harder if we want to master the material.”</p>
<p>The MOOC referred to above by Jeremy is his freely available online course “Practical Deep Learning For Coders, Part 1”, and which you can find it over <a href="http://course.fast.ai/" target="_blank" rel="noopener">here</a></p>
<h2 id="conclusion"><a class="markdownIt-Anchor" href="#conclusion"></a> Conclusion</h2>
<p>I just wanted to share this post with everyone who was like myself 10 years ago, or even yet still like me now, and wonders when I am going to feel/say that I mastered this programming skill or that computer science idea or method.</p>
<p>My advice to everyone who is really interested in programming or computer science, just be patient and have faith. Never think that programming is easy.</p>
<p>In the end, I spent a long enough time in such field and I can’t reflect but on my own experience. In my very humble opinion, programming is hard, but in some magical way happens to be fun too. So, for me, it’s just worth it, it worth my time spent trying, then failing, then repeating, then just feeling just getting better than my first trial 😅</p>
<p>Wish everyone all the best on their journey, and may the source be with you.</p>
<p>
<a href="/2018/04/10/Ten-years-of-programming/#post-footer" class="postShorten-excerpt_link link">
Comment and share
</a>
</p>
</div>
</div>
</article>
<article class="postShorten postShorten--thumbnailimg-bottom" itemscope itemType="http://schema.org/BlogPosting">
<div class="postShorten-wrap">
<div class="postShorten-header">
<h1 class="postShorten-title" itemprop="headline">
<a class="link-unstyled" href="/2018/02/18/a-year-in-review/">
A Year in Review
</a>
</h1>
<div class="postShorten-meta">
<time itemprop="datePublished" datetime="2018-02-18T22:26:09-07:00">
Feb 18, 2018
</time>
</div>
</div>
<div class="postShorten-content" itemprop="articleBody">
<img src="/2018/02/18/a-year-in-review/2017-collection.png" title="My 2017 image">
<h2 id="1-p-eng"><a class="markdownIt-Anchor" href="#1-p-eng"></a> 1. P. Eng.</h2>
<p>I never imagined I would be that happy after receiving the email stating my achievement of my professional designation!</p>
<blockquote>
<p>Dear Dr. Omr,<br>
I am pleased to inform you that your application for registration as a Professional Engineer has been approved and your name has been entered in our membership records. Congratulations on achieving your professional designation!</p>
</blockquote>
<h2 id="2-inventor"><a class="markdownIt-Anchor" href="#2-inventor"></a> 2. Inventor</h2>
<p>I have now 1 issued patent!</p>
<img src="/2018/02/18/a-year-in-review/patent.png" title="My patent image">
<h2 id="3-staff-engineer"><a class="markdownIt-Anchor" href="#3-staff-engineer"></a> 3. Staff Engineer</h2>
<p>I became Staff Software Algorithm Designer (Staff Algorithm Engineer)</p>
<img src="/2018/02/18/a-year-in-review/staff_eng.png" title="My staff_eng image">
<h2 id="4-self-driving-car-engineer"><a class="markdownIt-Anchor" href="#4-self-driving-car-engineer"></a> 4. Self-Driving Car Engineer</h2>
<p>Last but not least, getting my Self-Driving Engineer Nanodegree Certificate</p>
<img src="/2018/02/18/a-year-in-review/nd013.png" title="My Nanodegree Certificate image">
<p>
<a href="/2018/02/18/a-year-in-review/#post-footer" class="postShorten-excerpt_link link">
Comment and share
</a>
</p>
</div>
</div>
</article>
<article class="postShorten postShorten--thumbnailimg-bottom" itemscope itemType="http://schema.org/BlogPosting">
<div class="postShorten-wrap">
<div class="postShorten-header">
<h1 class="postShorten-title" itemprop="headline">
<a class="link-unstyled" href="/2018/02/18/programming-land-VISA-application/">
Programming Land VISA Application
</a>
</h1>
<div class="postShorten-meta">
<time itemprop="datePublished" datetime="2018-02-18T17:36:00-07:00">
Feb 18, 2018
</time>
</div>
</div>
<div class="postShorten-content" itemprop="articleBody">
<p>Hello, I’m Medhat Omr, a citizen of Programming Land. In Programming Land, we don’t have Europe, Asia, or Africa. Instead, we have Google, Github, and Stackoverflow. If you want to visit Programming Land, you need to have a Programming Land VISA, which I will talk about how to obtain one in the following steps.</p>
<h2 id="step-1-picking-a-language"><a class="markdownIt-Anchor" href="#step-1-picking-a-language"></a> Step #1: Picking a language</h2>
<blockquote>
<p>I speak Spanish to God, Italian to Women, French to Men, and German to my Horse. - Charles V, Holy Roman Emperor</p>
</blockquote>
<p>In Programming Land, we speak different languages to different programmers too. For e.g.:</p>
<ul>
<li>Programmers chasing performance usually speak C/C++</li>
<li>Programmers in the Web Union speak HTML, CSS, and JS and/or one of the following list: PHP, Ruby, Java, C#, or Python</li>
<li>Programmers in Data Science and neighbors speak MATLAB, R, and Python</li>
<li>Enterprise Apps, most probably C#, C++, or Java</li>
<li>etc.</li>
</ul>
<p>Therefore, step number one is depending on who you want to speak/write to, pick the preferred language for them. In other words, based on your project type, choose the most suitable language for it even if it is new to you. It worth learning it.</p>
<h2 id="step-2-learn-the-language-you-picked-in-the-previous-step-and-master-it"><a class="markdownIt-Anchor" href="#step-2-learn-the-language-you-picked-in-the-previous-step-and-master-it"></a> Step #2: Learn the language you picked in the previous step and master it</h2>
<p>Learning the syntax and features of a programming language is like learning the alphabet in English or French. All the subsequent steps depend on it, like everything in any writing language depends on knowing the alphabet of that language. So, invest time in knowing your language. It will give you great returns in the next steps.</p>
<h2 id="step-3-learn-object-oriented-programming-oop"><a class="markdownIt-Anchor" href="#step-3-learn-object-oriented-programming-oop"></a> Step #3: Learn Object Oriented Programming (OOP)</h2>
<p>OOP is like grammar in any writing language for me, not syntax; I didn’t map language keywords to the alphabet of a language to map syntax to grammar. Lots of programmers once learn the syntax of a programming language they stop learning about programming and start to program right away. Keep in mind, all time you spend in learning about programming will save you multiple magnitudes of time in debugging and/or maintaining your code afterwards.</p>
<h2 id="step-4-data-structures-ds-and-algorithms"><a class="markdownIt-Anchor" href="#step-4-data-structures-ds-and-algorithms"></a> Step #4: Data structures (DS) and algorithms</h2>
<p>In this step is where you start building up your vocabulary. The more DS and algorithms you know, the more fluent you will be in your programming language. So I will let you imagine how is life without vocabulary, and you will know how I feel when I see code which has nothing but arrays and for loops.</p>
<h2 id="step-5-design-patterns"><a class="markdownIt-Anchor" href="#step-5-design-patterns"></a> Step #5: Design Patterns</h2>
<p>Congratulations, now you can write a whole project by yourself, but what about an organization? How will you structure your code? The answer is design patterns. Like we have listing & classification, chronological & Compare contrast, process, cause & effect … etc. We have, the Multi-Tier architecture, the Model-View-Controller (MVC) architecture or pattern, the Singleton Pattern, the Factory Pattern, the Observer Patter … etc. In future posts, I will write more about each step in details. However, in the next post, I like to write first about what tools do we use in programming land. Stay tuned and happy programming.</p>
<p>
<a href="/2018/02/18/programming-land-VISA-application/#post-footer" class="postShorten-excerpt_link link">
Comment and share
</a>
</p>
</div>
</div>
</article>
<div class="pagination-bar">
<ul class="pagination">
<li class="pagination-number">page 1 of 1</li>
</ul>
</div>
</section>
<footer id="footer" class="main-content-wrap">
<span class="copyrights">
Copyrights © 2018 Medhat Omr. All Rights Reserved.
</span>
</footer>
</div>
</div>
<div id="about">
<div id="about-card">
<div id="about-btn-close">
<i class="fa fa-remove"></i>
</div>
<img id="about-card-picture" src="/assets/images/profile.png" alt="Author's picture"/>
<h4 id="about-card-name">Medhat Omr</h4>
<div id="about-card-bio"><p>I build Software, and I use Machine Learning besides Big Data to solve problems. My work is currently in commercial products in the market.</p>
</div>
<div id="about-card-job">
<i class="fa fa-briefcase"></i>
<br/>
<p>Staff Software Algorithm Designer at TDK InvenSense</p>
</div>
<div id="about-card-location">
<i class="fa fa-map-marker"></i>
<br/>
Canada
</div>
</div>
</div>
<div id="cover" style="background-image:url('/assets/images/cover.jpg');"></div>
<!--SCRIPTS-->
<script src="/assets/js/script-peofhqjkzcghmndknakluequy1y6owxdwpaqyju9ntl9zxnk7rdolb3rjjoj.min.js"></script>
<!--SCRIPTS END-->
</body>
</html>