<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Diaa Elkhateeb</title>
    <description>The latest articles on Forem by Diaa Elkhateeb (@diaakhateeb).</description>
    <link>https://forem.com/diaakhateeb</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F73658%2Ff780429f-0eb5-47a9-b6e6-c4e2088e0279.jpeg</url>
      <title>Forem: Diaa Elkhateeb</title>
      <link>https://forem.com/diaakhateeb</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/diaakhateeb"/>
    <language>en</language>
    <item>
      <title>Is it a correct evaluation way prposing developers with 10+ to competitive problems as the ones of HackerRank and codility?</title>
      <dc:creator>Diaa Elkhateeb</dc:creator>
      <pubDate>Wed, 06 Mar 2019 18:41:40 +0000</pubDate>
      <link>https://forem.com/diaakhateeb/is-it-a-correct-evaluation-way-prposing-developers-with-10-to-competitive-problems-as-the-ones-of-hackerrank-and-codility-2hkj</link>
      <guid>https://forem.com/diaakhateeb/is-it-a-correct-evaluation-way-prposing-developers-with-10-to-competitive-problems-as-the-ones-of-hackerrank-and-codility-2hkj</guid>
      <description></description>
      <category>career</category>
      <category>interview</category>
    </item>
    <item>
      <title>Serverless is the rational alternative to DevOps. Open Discussion. </title>
      <dc:creator>Diaa Elkhateeb</dc:creator>
      <pubDate>Wed, 06 Mar 2019 16:44:37 +0000</pubDate>
      <link>https://forem.com/diaakhateeb/serverless-is-the-rational-alternative-to-devops-open-discussion--2b93</link>
      <guid>https://forem.com/diaakhateeb/serverless-is-the-rational-alternative-to-devops-open-discussion--2b93</guid>
      <description></description>
      <category>devops</category>
      <category>serverless</category>
    </item>
    <item>
      <title>What are the best ways to find a software development job in Europe?</title>
      <dc:creator>Diaa Elkhateeb</dc:creator>
      <pubDate>Sun, 10 Jun 2018 20:06:36 +0000</pubDate>
      <link>https://forem.com/diaakhateeb/what-are-the-best-ways-to-find-a-software-development-job-in-europe-29cn</link>
      <guid>https://forem.com/diaakhateeb/what-are-the-best-ways-to-find-a-software-development-job-in-europe-29cn</guid>
      <description></description>
      <category>jobs</category>
      <category>career</category>
      <category>europe</category>
      <category>programming</category>
    </item>
    <item>
      <title>How to strength your GitHub? Is it real measurement tool to any developer? Open discussion topic</title>
      <dc:creator>Diaa Elkhateeb</dc:creator>
      <pubDate>Mon, 28 May 2018 01:18:14 +0000</pubDate>
      <link>https://forem.com/diaakhateeb/how-to-strength-your-github-is-it-real-measurement-tool-to-any-developer-4ihk</link>
      <guid>https://forem.com/diaakhateeb/how-to-strength-your-github-is-it-real-measurement-tool-to-any-developer-4ihk</guid>
      <description></description>
      <category>github</category>
      <category>programming</category>
      <category>career</category>
      <category>coding</category>
    </item>
    <item>
      <title>Does the college degree matter nowadays?</title>
      <dc:creator>Diaa Elkhateeb</dc:creator>
      <pubDate>Sat, 26 May 2018 13:24:51 +0000</pubDate>
      <link>https://forem.com/diaakhateeb/does-the-college-degree-matter-nowadays-569b</link>
      <guid>https://forem.com/diaakhateeb/does-the-college-degree-matter-nowadays-569b</guid>
      <description>&lt;p&gt;This question is frequently asked nowadays as evidences show that many people dropped the college and they are now famous such as Mark Zuckerberg and Bill Gates.&lt;/p&gt;

&lt;p&gt;For me, I always believe in Mathematics which says that 1+1=2 and it never going to be 0 or 3; and every rule has exception or abnormal state. Mark and Bill are the exception case not the default case. There are lots of factors in the equation that brought to us people like them. Imagine if Bill failed to build Microsoft, what would he do then? Imagine if Mark failed to market Facebook, what would he be?...etc. The intelligence only is not enough to make you a success person. You need many many things such as luck, circle around you, initial budget, on time right decisions, vision, suitable environment, conscious people and well study to the market need.&lt;/p&gt;

&lt;p&gt;I know that world is not like before. Now, Internet and communication tools are everywhere. You can learn anything anytime. But, let me give you an example that I live. Mike sent his CV to me that shows he built many good applications that might bring good income to him. He works with Java or React-Native to build mobile Apps. Another one called Stephan, his CV says that he works with Java too, HTML5 and JavaScript. Both are good candidates (according to the screening). However, I noticed that Mike dropped the college and studied online courses while Stephan graduated from faculty of Computer Science.&lt;/p&gt;

&lt;p&gt;I called both for interview. I asked both the same questions such as:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;1- Describe how garbage collection works in Java?
2- Does Java use pointer? If yes, how does it work?
3- What are the 3 sections of RAM? How your application variables get allocated?
4- You use tools to check the memory utilization, explain it?
5- How debugger works?
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;You can imagine the answers of both. Some people says such questions do not matter as such knowledge are not important to build applications. I disagree. Knowing such science and knowledge gives you the ability to build very strong application that can adapt and live for long time. It also let you use the development tools in the best way. It reduces the number of bugs and prohibits repeating of such bugs. It gives you the power of building enterprise critical applications such as Telecom where millions of users are in charge of your system.&lt;/p&gt;

&lt;p&gt;Science is important whatever happened. To be good software engineer, you need to study the science of the development tool and technologies you use.&lt;/p&gt;

</description>
      <category>programming</category>
      <category>interview</category>
      <category>career</category>
      <category>resume</category>
    </item>
    <item>
      <title>Do we really need to interview about data structure and algorithms traditionally?</title>
      <dc:creator>Diaa Elkhateeb</dc:creator>
      <pubDate>Wed, 23 May 2018 10:41:24 +0000</pubDate>
      <link>https://forem.com/diaakhateeb/do-we-really-need-to-interview-about-data-structure-and-algorithms-traditionally-1a0e</link>
      <guid>https://forem.com/diaakhateeb/do-we-really-need-to-interview-about-data-structure-and-algorithms-traditionally-1a0e</guid>
      <description>&lt;p&gt;As long as you grow up in your career, you move on top of the level that you asked to implement common data structures such as linked list, stack and queue. I have graduated in 2001 where the most common libraries were C++ STL and VC++ MFC. Lots of time I have been interviewed and asked to design and implement queue, stack and list containers.&lt;/p&gt;

&lt;p&gt;In 2002, I started to use .NET framework version 1.0 where such data structures were part of the class libraries.&lt;/p&gt;

&lt;p&gt;Now after 15 years, I still find people ask the same questions of implementing data structures while the type of development inside the company does not require this. I prefer to ask questions that appropriate to the nature of work. I take another approach when I interview candidate. I ask him about utilizing the built-in containers such as List, Queue and HashTable. For example, I give him the below code:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    var hashTble = new HashTable();
    var diction = new Dictionary&amp;lt;int, string&amp;gt;();
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Both are data containers. My questions to the candidate would be:&lt;/p&gt;

&lt;p&gt;1- The main difference in terms of internal implementation.&lt;br&gt;
2- The best scenario for each one.&lt;br&gt;
3- Performance in terms of time and space.&lt;br&gt;
4- If I would like to override each one Add method, what I need to do (code).&lt;br&gt;
5- Iterations over each one elements.&lt;/p&gt;

&lt;p&gt;In my opinion, through this way I can figure out If the candidate understands such fundamentals very well or not. I always believe that we have to consider the work requirements when we perform interviews. I met lots of interviewers ask complicated questions only to make shows while questions are not related to work nature at all.&lt;/p&gt;

</description>
      <category>datastructure</category>
      <category>algorithms</category>
      <category>c</category>
      <category>interview</category>
    </item>
    <item>
      <title>Simple technical questions</title>
      <dc:creator>Diaa Elkhateeb</dc:creator>
      <pubDate>Mon, 21 May 2018 13:04:06 +0000</pubDate>
      <link>https://forem.com/diaakhateeb/simple-technical-questions-5dic</link>
      <guid>https://forem.com/diaakhateeb/simple-technical-questions-5dic</guid>
      <description>&lt;p&gt;Simple technical questions that show how deep you are understanding the code you write.&lt;/p&gt;

&lt;p&gt;I always believe in nontraditional ways of finding talented people to join my team.ِ Also, I follow some tricks of mine when I involve in an interview to pick the team I am going to join.&lt;/p&gt;

&lt;p&gt;One way of interviewing candidates is to ask simple technical questions that have philosophic answers. Even, if the candidate answers the question correctly, I ask him why this natively got existed. This way I make sure that developer understands well the code he choose to write. I always believe that everything on this universe has a philosophy and a rule of bring it to the reality.&lt;/p&gt;

&lt;p&gt;A C# example of such questions is:&lt;/p&gt;

&lt;p&gt;What is the difference between each line of code below in terms of performance and execution time?&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;        var i = 7;
        int j = 8;
        var x = new int[] { 9 };
        object y = new int[] { 10 };
        int[] z = new int[] { 11 };

        Console.WriteLine("i " + i);
        Console.WriteLine("j " + j);
        Console.WriteLine("x " + x[0]);
        Console.WriteLine((y as int[])[0]);
        Console.WriteLine(z[0]);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;The candidate needs to explain the differences here, which one is better and how compiler executes them. Hypothetically, all of them should give the same result, but which one developer would use in his code. Here, he should understand var, object and explicit typed array declaration.&lt;/p&gt;

&lt;p&gt;Another example is to give him an array of 10 elements with one element repeated. The job is to find the repeated element with only one loop. For instance, &lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;var arr = new int[] {1, 4, 8, 30, 4, 77, 5, 0, 10, 9}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;He needs to find (4) with only one loop.&lt;/p&gt;

&lt;p&gt;Such simple questions does not measure his competence regarding C# as a programming language as I am not convinced to stick to specific language. They measure his talent, how he thinks and how well he plays with the programming language.&lt;/p&gt;

</description>
      <category>c</category>
      <category>algorithms</category>
      <category>career</category>
      <category>interviewing</category>
    </item>
  </channel>
</rss>
