<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Another blog on coding</title>
    <description>Another blog about my journey learning new programming languages after a long absence.  Although I'm working as a network analyst, I really enjoy writing code and learning new languages more.  This follows my journey learning all the latest new languages and maybe even revisiting some older languages like C++
</description>
    <link>http://joeryan.github.io/</link>
    <atom:link href="http://joeryan.github.io/feed.xml" rel="self" type="application/rss+xml"/>
    <pubDate>Sat, 07 Apr 2018 03:37:02 +0000</pubDate>
    <lastBuildDate>Sat, 07 Apr 2018 03:37:02 +0000</lastBuildDate>
    <generator>Jekyll v3.7.3</generator>
    
      <item>
        <title>No community and a lack of training opportunities in other technology fields</title>
        <description>&lt;p&gt;Something I’ve been thinking about a lot lately is community and other technology
fields.  It seems like every programming language and at least a few operating systems
have their own user group or meeting in the local area.  Now maybe that’s due to
the smaller community I’m currently in, but it seems like that was the case in
Columbus, OH as well.  In addition to this lack of community among people in the
Networking, database, and storage communities; I wonder about the number of
learn to code boot camps and kids programs geared toward programming.  I realized
a few things and I think the greater technology community needs to address them.&lt;/p&gt;

&lt;p&gt;Number one on this list is community.  If you work in a particular field of
expertise, you should probably participate in that community.  If there isn’t a
local group that meets and you are in a town of any size, YOU should start
that meeting to encourage others and pass along your knowledge.  Even if it’s
only two or three people that meet and talk about the specialization, there is
something that could probably be shared. In view of that, I’m going to start a
packet tracer meeting to chat with other network folks.  Hopefully I can get at
least a couple people to join me to chat about what’s new and cool in the network
space.&lt;/p&gt;

&lt;p&gt;Number two is finding a way to provide that experience and help people find out \
about those other branches of the Tech field.  There is training out there for
low cost or no cost, but it seems like programming is the cool thing and it makes
everyone think that is what working in the technology sector is all about.  There
are other jobs and careers out there, in disciplines like networking, data analysis,
storage, virtualization, servers, and desktop support.  A major problem is gaining
experience in those areas.  Network gear, storage, and servers all cost real money
and no one wants learners playing with their production systems.  There has to be
a good way to let people experiment and learn with hardware the same way we can
break software and learn what works and what doesn’t without selling our left arm.&lt;/p&gt;

&lt;p&gt;To try and help out with both these issues, I’ve got plans to start some sort of
non-profit space to let people experiment, learn, and even gain some real world
experience on production level equipment.  I want a place that anyone can come
and learn or experiment on something new without fearing that
they might break things that “need five nines of uptime.”  I’m not sure how I’m
going to manage to keep it going for long, but I do have a few grandiose ideas.
 Getting it started should definitely help the technology
community, local community, and businesses alike.  Long Live &lt;a href=&quot;http:\\www.innercitycomputing.org&quot;&gt;Inner City Computing&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;That’s today’s rant.  Hopefully it got someone else besides me energized and didn’t
upset anyone too badly.  Maybe the next post won’t take so long to materialize.&lt;/p&gt;

</description>
        <pubDate>Mon, 23 Nov 2015 00:00:00 +0000</pubDate>
        <link>http://joeryan.github.io/training/community/education/technology/2015/11/23/no-community-and-a-lack-of-training-opportunities-in-other-technology-fields.html</link>
        <guid isPermaLink="true">http://joeryan.github.io/training/community/education/technology/2015/11/23/no-community-and-a-lack-of-training-opportunities-in-other-technology-fields.html</guid>
        
        
        <category>training</category>
        
        <category>community</category>
        
        <category>education</category>
        
        <category>technology</category>
        
      </item>
    
      <item>
        <title>Why do colleges scare prospective programmers away</title>
        <description>&lt;p&gt;Why do many colleges and universities insist on scaring away curious or uncertain people who could become excellent developers and Information Technology professionals?  Take a look at the way many of them teach an introduction to Computer Science class and you can see how it might look intimidating and cause people to think they can’t be programmers and never go any further.  They could use these courses to show poeple just how easy it is to get a computer to do their bidding and increase the population of people who call themselves Computer Programmers.&lt;/p&gt;

&lt;p&gt;I use my own daughter as an example.  She is a Psychology major with a math minor and one of her Psychology professors encouraged her to take a Computer Science class.  You can imagine how thrilled I was to hear of this.  Unfortunately, her university teaches intro to Computer Science using Java and Eclipse.  I’m not going to say that Java is a bad language, but I don’t think it is suitable for an introductory course.  It definitely has use cases, but the syntax isn’t friendly and it forces students to learn concepts that are better suited to an cntermediate or advanced environment.  I’d say the same about C++, so don’t think that I’m singleing java out.&lt;/p&gt;

&lt;p&gt;Instead of dealing with compiler errors and excessively criptic syntax, new Computer Science students or people that are simply curious should be learning the more basic programming concepts.  I’d like to see a curriculum that shows algorithm development and the basic programming cncepts.  Not specific Algorithms mind you, but how to break a problem down into the basic steps needed to get a program running.  Disecting the problem statement into the bite sized chunks that allow us to write programs that do useful work.&lt;/p&gt;

&lt;p&gt;Following a block on disecting the problem, students nhould be introduced to the other basic concepts that almost all languages share.  These include variables, loops, other control structures, presenting output, and taking input from users.  Instead of difficult concepts like classes and inherritance, and all the complexity that goes along with it, we should be teaching recursion, functions, and return values.  I’m not saying we should teach them a visual programming tool like Scratch, but why do so many schools insist on a compiled language for an introduction to programming or computer science in general?&lt;/p&gt;

&lt;p&gt;Python, Ruby, or other scripting languages do a much better job of providing the basic concepts of programming without bogging down in minutae that isn’t that important to people who may just want to know what this programming is all about.  I would even go a step further and introduce them to JavaScript as a first language.  It doesn’t require anything more than a text editor and a browser.  There is no need to dedicate a class or lab time to installing the development environment.  Almost every single modern computing device is preconfigured to do beginning JavaScript development.&lt;/p&gt;

&lt;p&gt;I have to disagree with any academic that ever tells me “It’s the language that corporate America wants us to teach.”  If you ask a manager if they want a programmer that knows everything a lot about Java or someone who has done some work in a wide variety of languagues, I’m betting the smart ones mill pick the person that learned to program and to learn languages.  So not only should colleges not start with Java or C++, halfway through the introductory course they should change to something that allows more complexity and teach students that computer programming is all about learning and exploring the next language.  You nver know what tool is the best one for the job, but if you understand the basics and can learn a new tool you can always find the right one!&lt;/p&gt;
</description>
        <pubDate>Fri, 16 Oct 2015 14:29:59 +0000</pubDate>
        <link>http://joeryan.github.io/learning/education/languages/java/c++/python/ruby/javascript/2015/10/16/why-do-colleges-scare-prospective-programmers-away.html</link>
        <guid isPermaLink="true">http://joeryan.github.io/learning/education/languages/java/c++/python/ruby/javascript/2015/10/16/why-do-colleges-scare-prospective-programmers-away.html</guid>
        
        
        <category>learning</category>
        
        <category>education</category>
        
        <category>languages</category>
        
        <category>java</category>
        
        <category>c++</category>
        
        <category>python</category>
        
        <category>ruby</category>
        
        <category>JavaScript</category>
        
      </item>
    
      <item>
        <title>My first experience with Jekyll!</title>
        <description>&lt;p&gt;This is just the first post and my first experience with jekyll.  I’ve had some  experience with Ruby and the Rails framework, but it’s definitely been awhile.  I had the pleasure of attending the &lt;a href=&quot;http://www.meetup.com/lansingweb/&quot;&gt;Lansing Web MeetUp&lt;/a&gt; just this past Wednesday, and got to hear some lightning talks about a number of static site generators in a couple of different languages.  I’ll highlight them below more so that I won’t forget them than that providing anyone else a great description.  But, maybe there will be some information that helps someone else out.&lt;/p&gt;

&lt;p&gt;Dave Smith, from &lt;a href=&quot;http://www.cognitelabs.com&quot;&gt;Cognite labs&lt;/a&gt;, started things out with Jekyll which is based in Ruby.  Jekyll primarilly uses YAML for configuration, and can contain embedded Ruby code.&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-ruby&quot; data-lang=&quot;ruby&quot;&gt;&lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;print_hi&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
  &lt;span class=&quot;nb&quot;&gt;puts&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;Hi, &lt;/span&gt;&lt;span class=&quot;si&quot;&gt;#{&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;si&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;end&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;print_hi&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;'Tom'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;c1&quot;&gt;#=&amp;gt; prints 'Hi, Tom' to STDOUT.&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;It is actually the primary generator used in creating github pages.  Check out the &lt;a href=&quot;http://jekyllrb.com&quot;&gt;Jekyll docs&lt;/a&gt; for more info on how to get the most out of Jekyll. File all bugs/feature requests at &lt;a href=&quot;https://github.com/jekyll/jekyll&quot;&gt;Jekyll’s GitHub repo&lt;/a&gt;. If you have questions, you can ask them on &lt;a href=&quot;https://github.com/jekyll/jekyll-help&quot;&gt;Jekyll’s dedicated Help repository&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Leo Dion, from &lt;a href=&quot;http://www.brightdigit.com&quot;&gt;brightdigit&lt;/a&gt; @brightdigit, showed us Metalsmith which uses JavaScript.  This scaffolding and uses YAML like jekyll, but the build scripts use either JS or json files - whichever you prefer.  It can use common plug ins for markdown, layouts, and permalinks.  He found it was more flexible and worked with Gulp, which was a consideration in his case.  The only down side is that there are sometimes EMCAScript6 and EMCAScript5 conflicts.&lt;/p&gt;

&lt;p&gt;Dave Smith also presented Middleman, another generator writen in Ruby.  He was in the process of migrating many of &lt;a href=&quot;http://www.cognitelabs.com&quot;&gt;Cognite Labs&lt;/a&gt; sites to use middleman.  It is faster than Jekyll and has access to all of ruby and rails.  The config.rb file can contain helper methods that are accessible through out the site.  It allows rapid switching between development and production environments.  It can also use code templates, following the DRY (don’t repeat yourself) principle, and loop through a [data].yml file to display lists.  Another nice featuure is the ability to have sub-menus that can expand.  Unfortunately, the documentation leaves a lot to be desired.  It doesn’t push to github pages out of the box but ther are many other free or low cost places to publish static site content, such as &lt;a href=&quot;http://surge.sh&quot;&gt;surge.sh&lt;/a&gt; and &lt;a href=&quot;https://www.netlify.com&quot;&gt;netify.com&lt;/a&gt;.  It can be hard to do images dynamically, but there is a gem that can do 3 versions of images.  It can use many other gems and the plugin eco sys is richer than jekyll’s.  This is probably because it’s easier to go build something for middleman than for Jekyll.&lt;/p&gt;

&lt;p&gt;Chris Fritz @chrisvfritz took on a quick overview of Hugo written in Go, since Patrick Hawkins couldn’t be there.  Hugo build times are super fast compared to many other static site generators and uses all available cores on the system.  It also has rich plugin eco system, but for anything non-trivial you would need to know some Go.  On the plus side, Check out the youtube video &lt;a href=&quot;https://www.youtube.com/watch?v=2KmHtgtEZ1s&quot;&gt;getting started with Go&lt;/a&gt; for some good introductory information.  It compiles into executable code, but doesn’t feel like a low level language.&lt;/p&gt;

&lt;p&gt;Finally, Chris Fritz presented HJS-Webpack written in JavaScript.  This is basically webpack and react with the heavy lifting taken care of by HJS-webpack.  You do have to build everything from scratch and there is no cool plugin ecosystem and almost no docmentation.  But, you can build it all yourself! This ultimately gives you intimate knowledge of the generator.  You also get the full power of client side scripts but with selectable and customizable pre-rendering with no crazy Phantom-JS hacks.  It has live reloading with no state loss provided by the webpack development server and react live reload.  You can see the demo at &lt;a href=&quot;http://webpack-react.surge.sh&quot;&gt;webpack-react.surge.sh&lt;/a&gt; and get the source at &lt;a href=&quot;https://github.com/chrisvfritz/webpack-react-demo&quot;&gt;github.com/chrisvfritz/webpack-react-demo&lt;/a&gt;.&lt;/p&gt;

</description>
        <pubDate>Thu, 15 Oct 2015 22:59:59 +0000</pubDate>
        <link>http://joeryan.github.io/jekyll/update/2015/10/15/welcome-to-jekyll.html</link>
        <guid isPermaLink="true">http://joeryan.github.io/jekyll/update/2015/10/15/welcome-to-jekyll.html</guid>
        
        
        <category>jekyll</category>
        
        <category>update</category>
        
      </item>
    
  </channel>
</rss>
