<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Development on Victor42</title><link>https://victor42.eth.limo/tags/development/</link><description>Recent content in Development on Victor42</description><generator>Hugo -- gohugo.io</generator><language>en</language><managingEditor>hi@victor42.work (Victor42)</managingEditor><webMaster>hi@victor42.work (Victor42)</webMaster><lastBuildDate>Sun, 28 Jan 2018 21:17:08 +0000</lastBuildDate><atom:link href="https://victor42.eth.limo/tags/development/index.xml" rel="self" type="application/rss+xml"/><item><title>Bricklaying and Trailblazing</title><link>https://victor42.eth.limo/post-en/3569/</link><pubDate>Sun, 28 Jan 2018 21:17:08 +0000</pubDate><author>hi@victor42.work (Victor42)</author><guid>https://victor42.eth.limo/post-en/3569/</guid><description>&lt;p&gt;Developers often joke about being IT coolies, just &amp;ldquo;laying bricks.&amp;rdquo; Outsiders often don&amp;rsquo;t get what they face daily, or why they make these self-deprecating jokes.&lt;/p&gt;
&lt;p&gt;I recently teamed up with a classmate on a WeChat H5 page with data submission. I handled design and front-end; he took care of the back-end, server, and domain. This gave me a glimpse into back-end development, and I suddenly understood the &amp;ldquo;bricklaying&amp;rdquo; analogy. I gained a much deeper appreciation for the challenges developers face. It&amp;rsquo;s a different world compared to other professions. If you&amp;rsquo;re not familiar with development, I&amp;rsquo;ll explain it in plain terms.&lt;/p&gt;
&lt;p&gt;We used a standard front-end/back-end separation. Think: front-end is close to the user, back-end is far away, connected by networks. My work involved creating the page&amp;rsquo;s look, displaying it, and handling user-side logic. For example, email fields need an &amp;ldquo;@&amp;rdquo; symbol to be valid. My classmate&amp;rsquo;s work involved receiving user info, storing it in a database, and handling statistics.&lt;/p&gt;
&lt;p&gt;We needed to collaborate on the &amp;ldquo;interface&amp;rdquo; – how I&amp;rsquo;d format and send user input, and what feedback he&amp;rsquo;d send back, including errors.&lt;/p&gt;
&lt;p&gt;We were interdependent. I finished the front-end first, but how could I test the interface code? I needed the back-end to know if my code was correct. Since his code wasn&amp;rsquo;t ready, I had to wait. Of course, developers don&amp;rsquo;t just wait around. There are ways to simulate each other&amp;rsquo;s work, which is what we did.&lt;/p&gt;
&lt;p&gt;He wrote some Python to simulate the interface locally. I knew nothing about Python and was lost. After staring at it, I got a clue. Combining it with our agreed interface, I roughly understood it. My task: turn my computer into a mini-server, run his code, and submit content to it. His code would give feedback, letting me test.&lt;/p&gt;
&lt;p&gt;But it failed miserably. The problem? Running his Python code. Prerequisites: First, Python. macOS comes with Python 2.7, so that was fine. Then, I needed common Python modules his code relied on. Installing these threw errors.&lt;/p&gt;
&lt;p&gt;I first thought: macOS permissions. I tried getting superuser access, but no luck. Developer forums suggested upgrading/reinstalling modules – didn&amp;rsquo;t work. Then: Python version? I installed Python 3.6, replacing 2.7, and reinstalled. This time: syntax error. Python 3 changed some syntax. I fixed it, but the original error reappeared. A module he used was deprecated in Python 3, needing replacement – beyond my skills. I gave up on switching back to 2.7. Dead end.&lt;/p&gt;
&lt;p&gt;I switched to a tool he recommended, simulating back-end data. Limited compared to raw code, but it worked, solving the problem.&lt;/p&gt;
&lt;p&gt;This showed me how tough developers have it. Design tools are stable. Problems? Restart, reinstall. We focus on design. Developers&amp;rsquo; tools – languages, modules, environments – are far more fragile. Incompatibility, settings, weirdness. Like a construction worker with a broken saw or drill. Fixing these isn&amp;rsquo;t development, but they spend time on it.&lt;/p&gt;
&lt;p&gt;Front-end, which I know, is similar. Example: mobile button press feedback, like mouse hover. Hidden pitfall: code to darken a button on press might not work. You find you need a seemingly pointless line of code. Like picking up a chess knight, waving it, putting it back. No move. But it makes the effect work. Makes no sense, but you must write it. Solving this creates nothing, but it&amp;rsquo;s common. Tedious, unrewarding. Creative work brings accomplishment.&lt;/p&gt;
&lt;p&gt;Development is amazing. Making something from nothing. Tech gurus complain about bugs, broken interfaces. Developers get stuck on unrelated technical issues. But they&amp;rsquo;re like pioneers. Venturing into the wilderness, making tools, building houses, laying railroads. Solving countless problems, creating infrastructure for later prosperity. Our stable products are thanks to their exploration.&lt;/p&gt;
&lt;p&gt;I don&amp;rsquo;t enjoy this. I learn enough front-end to get by. I might have made inaccurate comments. With awe, I&amp;rsquo;ll stick to design!&lt;/p&gt;</description></item></channel></rss>