#getting horrible memories from when i was trying to learn classes in java
Explore tagged Tumblr posts
Text
looking with dread at javascript objects
#sightings#im so scared. im gonna have to learn them if i want to implement multiple enemies in my game like i planned but i dont wanna#getting horrible memories from when i was trying to learn classes in java
3 notes
·
View notes
Text
Wisdom from Years of Android Development
Source of Information: Android Classes In Pune
I still keep in mind that day back in 2014 once I chose to begin Android growth, and this was among the greatest decisions I required in my entire life. It's been approximately two and a half a year today and that I had the opportunity to understand and un-learn a good deal of items in Android.
Originally when I began, I did not have a mentor or someone who could direct me to do things the ideal way. I have done a LOT of errors and wasted a great deal of time later rectifying them.
Afterwards, after one and a half a year, I have the opportunity to use some really gifted and expert Android programmers, who advised me and allow me to shape matters in a far greater manner. Both these stages helped me find out a hell lot of stuff in the tricky way.
It's been quite a while I have been attempting to assist other programmers in a sense possible for me personally, indirectly and directly.
In the following guide, I'll be sharing a few of the gems I have gathered lately. It may help a person to get started quicker rather than repeat the mistakes which I did.
Disclaimer: I could largely be focussing on Android plus a few notions of product and programming development within the following guide, so if you aren't acquainted with some of them, you may rather not read any farther. Others, just dip. :--RRB-
Do not Reinvent the Wheel
Originally I had a lousy notion of not utilizing open-source libraries. Whatever I wanted, I only wanted to make it . It has was severely a terrible thought.
When you've got a problem whilst creating your program, and if this problem was solved by another person earlier and in a fantastic way, why don't you use this? You may save yourself a good deal of time.
Focus on the core business logic of your program. If you wish to create network calls on your program, you do not have to earn a Retrofit yourself.
Bonus: Android Arsenal keeps a record of nearly all of Android libraries made. Go take a look.
Pick Libraries Wisely
You will find lots and a lot of open-source libraries out there in Github that you use at no cost. But do not get too excited and begin using libraries .
Assess the amount of celebrities that library gets, the greater the better. Assess whether the writer of the library also have established some other popular libraries too. Verify the topics (both closed and open ), which may provide you a clearer idea of how powerful and secure the library is in creation.
If you're able to spend the time, then you ought to dip into the code of the library and assess yourself whether its really worthwhile.
You only wish to make certain that the code you're likely to use is dependable, bug-free and high quality.
Pro Suggestion: Try any library hosted straight from the command line with Dryrun.
If you aren't doing this, START today.
Whatever code you're in a position to write now is simply because you've read and heard something, somewhere, someday. It is only a manifestation of what you know. You may just grow and improve your self by studying and learning from other's work.
The fantastic thing about Android is the fact that it's an entirely open-source platform. Dive in the code and assess how they've implemented the frame. There are hundreds and hundreds of open minded libraries in Github. Simply select a library and find out the way the programmer have employed it.
Bonus: here's a curated collection of a few of the greatest libraries and here's a list of nearly all accessible Android programs out there. You're welcome:--RRB-
Should you compare coding together with composing, then coding criteria is similar to your own handwriting.
Since you'd be studying more of the others code, other folks are also studying a great deal of your code and you do not wish to frighten the shit from these, do you really? And if you're working within a business and cooperating with other programmers greatly, do take particular care of it.
Write brief, readable and clean code which you and people reading your code will like thoroughly. Your code should read as a narrative.
Do not complain if you compose a bit of code along with your coworkers do not speak to you for a couple of days.
You Want ProGuard, YesYou Want It!
ProGuard not just minifies your code, but it also obfuscates your code which makes it tougher for reverse-engineers to comprehend, replicate and control it.
Its free and comes bundled with all the Android SDK, and there's simply no reason for you to not use it.
I've observed many developers releasing their program in the marketplace with no ProGuard. It shouldn't require more than a couple of hours to get a not-so-skilled hacker to control an the program published without Proguard.
Pro Suggestion: But if you'd like top-notch protection, then ProGuard is just like a cardboard at the same time you want a secure, and here it's, DexGuard.
Use a Suitable Architecture
You may thank yourself for choosing a suitable structure in the first location.
It's possible to utilize MVP (Model-View-Presenter) structure that may decouple your code to various easy-to-manage layers thereby enhancing code flexibility and significantly reducing maintenance period.
There's a good demo job for you to begin. And if you're having trouble grasping it, here's a thorough guide for the novices.
Bonus: Do provide a check out this, this and most significantly this. Every one these can help you in executing MVP on your undertaking. User Interface Is just like a Joke, Should You Need to Explain It, It Is Bad
Should you work for any company playing the use of"only" a Android programmer, you likely won't have to be overly concerned about that, since there really are UI/UX designers to look after this.
However, if you're a single programmer, you have to get this directly in your mind. I've seen programmers creating really great programs with good performance, however, the UI looks horrible along with the UX makes it a hassle to use.
Layout a clean, easy and gorgeous interface that's easy on the eyes. You shouldn't just think as a programmer, instead you need to focus on igniting the concealed designer in you.
Attempt to make a lasting impression in your customers by designing a gorgeous UI, so they return to your program more frequently than others and often convert more (purchase your premium variant ( possibly ).
You ought to find a kick by eliminating elements from your own design, instead of adding. Keep it minimal and clean.
And there's this book you probably would really like to see if you want to know more about design.
Analytics Is Your Very Best Friend
If you would like to produce a really amazing program, then you have to heavily rely on analytics programs to assess the operation and utilization of different sections of your program.
By analytics, I refer to both the collision reporting and program usage monitoring and you want both of these.
Anything you do, you can't ever make something ideal. When actual users will begin using your program on various Android apparatus and on different Android variants available, you may also find a few of the greatest written code to drop flat on the floor.
Crash reporting programs can allow you to monitor and fix themone crash at one time.
You also will need to begin thinking like a marketer and also examine the use of various elements of your program. This is what's going to allow you to bridge the gap between what you've created and what your customers' actually desire.
Pro Suggestion: I strongly suggest looking for the crash reporting tool in Instabug. You're going to appreciate it.
Make a Marketing Ninja If you're a single programmer, you need to consider beyond being"a programmer" and need to understand marketing too.
I've observed great products fail because of lack of suitable marketing, and also the not-so-good ones become hugely successful only because of fantastic advertising.
If you're seriously interested in your work and need it to reach a huge audience, you want to spend your time and cash in properly advertising your program. But prior to beginning your marketing and advertising campaigns, make certain your program is totally stable with all attributes prepared. You need maximum conversions out of each penny you pay, right?
Spend some time exploring who your opponents are and how you can overcome them. Identify the ones you're able to compete quickly as well as also the ones which you need to keep aside for a long term struggle.
Pro Suggestion: This is an inexpensive market evaluation instrument, I really like to use.
It Is Time to Boost Your Program
This is something which the majority of us don't do, however, you need to and you want to.
Write code which runs fast, takes less memory and absorbs less apparatus storage.
An unoptimized program works well under ordinary conditions, but when placed to various stressful circumstances, it may show you its true colours.
Bear in mind, a very small leak can sink a large ship. Spend some time on knowing how the Garbage Collector works in Java, produce heap dumps and examine your live items.
Pro Suggestion: Use Leak Canary to discover your memory flows. It can save a great deal of time by accomplishing this job for you.
Save Over 5 Hours Each Week with Gradle Builds
It is very very possible that you're utilizing Android Studio to create Android programs and utilizing Gradle as your own build platform. Gradle is excellent but its slow and it becomes much thinner than a snail as soon as your job size begins to increase in proportion.
I recall the countless hours I've wasted just sitting and awaiting the Gradle assembles to complete. On hefty workouts, I wasted around one hour just Gradle assembles and that is like 5 hours each week draining the gutter.
However, there are ways to speed this up too.
It is possible to stick to this and this article to greatly enhance your construct rates. My construct time fell from 4 minutes to less than 30 minutes following appropriate optimization.
Evaluation, Evaluation and When You're Finished, Test Again!
There isn't anything more significant than testing. This is something which needs to be on very top of your list.
Test your program as completely as you can. Create various stressful scenarios for your program and see whether it can endure.
I'd formerly made the mistake of publishing my program from rush and did not spend appropriate time analyzing it. I had been waiting for my customers to confront bugs, report it and then I'd go and mend them.
You may spare a day, or 2, or per week by cutting time from studying, but will most likely have to spend over double afterwards.
Make a visionary. Sow today, reap afterwards.
There are a massive assortment of all Android devices with different display sizes and hardware specifications from plenty of different apparatus manufactures that personalize the OS for their heart's content.
Added to this are the a variety of Android variants at which Google adds/removes API performance from nowhere to raise your workload further (an example here).
By way of instance, not just one Android programmer has completed a program without using SharedPreferences API. It is so common, however it had been broken up in Samsung Galaxy S using Android 2.2 (bug report ).
Spend additional time creating different designs for different screen dimensions. Evaluation on various apparatus, having different variations, different specifications and from various OEMs.
Never presume something could work, simply as it appears so.
Start with Git, Now!
If you're still not utilizing Git, go right ahead and begin using it straight away.
Once I began Android advancement, I was unlucky enough to not understand exactly what the fudge Git was. I used to replicate my whole project regular and keep 1 backup in my hard disk and another from the cloud. Seems foolish? Yes, it was.
Git can radically enhance your workflow. If a person asks me to mention a tool I use everyday and can not quit using? It is Git and Git each time.
And likely after using it for a couple of days you'd fall in love with it and wish to understand how Git works tirelessly, so here it's prepared for you.
And after some time, you'd be starting a large project your self and get confused about how you should keep a suitable branching model, so that you go.
Bonus: If you're only starting out and can not manage to pay the monthly subscription fee for keeping private repositories from GitHub, it is possible to attempt BitBucket which permits you to do this free of charge.
Make It Hard for the Hackers
The open minded nature of Android is exactly what makes it susceptible to attacks.
You do not need it to happen for your program, right?
You ought to be aware of how to safely store API keys everywhere on your program. If you're managing sensitive information from those consumers, then you have to understand how to encrypt themwhat algorithm to select (secure yet quickly ).
It's also advisable to keep the encryption keys safely in the host or locally (if desired ). If you're storing sensitive information in the database, then think about obfuscating it.
If your program includes a premium version that gets cracked and has published at no cost. You'd incur a critical reduction in company, right?
There are many things you can do to stop your program from becoming tampered. There's not anything like 100% safety. Any proficient and recognized hacker with the proper tools, patience and tools may crack your program.
Whatever you need to do is make it hard, rather very tricky for the hacker to decode it.
A luxury apparatus will hide a great deal of flaws while creating your program. Suppose you're doing something from the UI thread that makes its way to get a laggy UI, however onto a potent device, you might never ever observe that.
A classic, low-end apparatus, dumped with a lot of programs makes it perfect for a development apparatus.
That is an investment which will pay you eternally.
Whilst creating large and intricate programs, you may face some common issues that have probably been solved before by somebody more capable than you, that is when designing patterns comes in to play.
Here's a Github job that shows all of the design patterns known to humanity.
Looks like a great deal? It really is not. You'll begin enjoying them after you dip in.
It Is Time to Give Back
Most of us have a great deal of assistance from folks around us and by the net. Lets declare it. When you have a issue, the very first thing you'd do is Google that and find the very first link from StackOverflow. Sometimes you're in a rush and you wind up copying and pasting the alternative in the response with the greatest votes.
Ever believed the amount of libraries you're using from Github free of charge and the way in which they have significantly reduced your development efforts and time. Its because somebody somewhere has taken the opportunity to construct it and donate to make the community better.
Recall the day, if you had been stuck in knowing a challenging idea or something that's completely new to you, and you wind up finding an wonderful blog post that made it super simple for you. Its because someone skipped a film date and wrote this post.
We're active in our work and also we find it too hard to handle time and do something for others. But try to get some time each week to donate and make this particular Android community wealthier.
I've attempted to discuss a few of the lessons I have discovered in this brief journey with Android improvement. I'll continue my trip, find out more and share more. I hope it will help somebody and makes their life somewhat simpler.
Android Course In Pune | Android Training In Pune | Learn Android Development In Pune
1 note
·
View note
Text
A little big confession.
I think it’s about time I got something out of my chest.
It’s got something to do with game development, but mostly with my... career.
It’s been a strange year in this aspect. I’ll put it under a read more, but long story short, everything’s fine now.
I’m dropping out from college.
After seven years trying and failing to rewire my brain into thinking like a programmer, I’ve finally come to the conclusion that programming is simply not for me.
Since I had spent some years taking “”“computer science lessons””” (read: learning to use Google, playing games, using Microsoft Word and Excel) back then, around 2006 I decided computers were my stuff. Not because I loved the idea of walking around messing with the wires and chips, or learning any programming language, but simply because I thought using a computer was Fun.
Now now, as a kid I always kept changing my life goals, I’ve wanted to be an astronaut, a cook, a teacher, a freaking singer???? Or maybe an actor. I don’t even remember. But the one and only goal in life that didn’t change was making videogames.
Back in the 90′s or early 00′s, this was a really strange dream.
“What a weird job! That’s so nerdy! That doesn’t get you anywhere! What do you even study to become a game developer!?”
So I, in all my innocence, thought it was a good idea to get into computer science. Nice! I’ll get to use the latest technology, I’ll animate in 3D, I’ll work at Pixar, I’ll-
No.
I simply deluded myself with the idea that computer science would get me where I wanted, because in Spain, or least most of the country, there isn’t such a thing as a “videogame development” career. I expected to, at least, know the basic stuff thanks to computer science, and boy was I wrong.
75% of the career is directed solely at programming, and hardware. Programming in different languages, programming obsolete ways of storing memory, programming ways of laying out and processing data, programming databases, imagining strange case scenarios that are extremely specific to the very concept you’re trying to learn and probably not even going to use in the rest of your life.
From the remaning 25%, about 15% is math. As in, boring, extensively explained and justified, and needlessly advanced, math. I personally had little to no problem with it - I passed most if not all of the math subjects in the first two years. And 10% is booooooooooooring protocols and company stuff.
Most of the time, when I thought of dropping out practically every year, there were two main fears: A, disappointing my family, and B, losing my friends. For the record, my university friends and I are still in contact, and we’re a solid squad. They were the first friends with whom I could be 100% myself.
But A, continuously failing my programming subjects made my family disappointed anyway, and B, my friends passed different subjects at different speeds, so we don’t really see each other that often in class anymore. As of this semester, I don’t share classes with any of them. So those two reasons slowly vanished and I was left in some sort of limbo where I didn’t want to keep studying, but I kept going because lol inertia.
This year, all of my subjects were programming subjects, and all of them were horribly boring and time-consuming to me. So, in order to keep my grip on reality somehow, I added a third year subject to my year: web applications development.
It’s not really about developing apps at all, it’s more about getting in touch with a few programs such as Audacity, Blender, Gimp, etc... and learning about design, cameras, file formats.
“Awesome! Something I actually know about!”
Needless to say, this subject was a freaking breath of fresh air. I had a blast every Wednesday afternoon, editing audio, learning 3D, restoring old pictures... it was fun. It was exciting. I, again, felt the joy of studying something I loved. It made me feel so excited I actually decided to make Someday v0.10, and take a short 3D modeling course for free.
The 3D modeling course was amazing. It actually made me say “THIS is want I want to do”.
Once the subject was over in February, I was brought back to reality. The rest of my year was all programming.
But that same month, one or two people began offering money for my drawings. Ever since the previous summer, I saw my family grow increasingly proud of my drawings and, heck, my work in general. They actually supported my interest in 2D or 3D art, and they recently started supporting my interest in formally learning Japanese (I’m actually looking for courses in case I can join one).
My world turned upside down entirely. And suddenly, everything came together.
I don’t like computer science.
I like all of the artistic stages of game development.
I like drawing. I like designing. I like writing stories and dialogues. I like translating. I like modeling. I like composing.
I don’t like programming, or anything about marketing.
I like art.
The idea of being An Artist is completely alien to me, though. When I was a kid, my drawings were terrible. Like, really terrible. I didn’t even like drawing. But I kept doing it. I wanted to share my ideas, my worlds, my characters. And eventually I grew to love practiically any form of art, but especially if it was directed at videogame development.
Even helping at making an animated show would be awesome to me.
This idea stuck to my mind and I actually became unable to study almost any programming at all. Every exam I would be like “I hate this. Why am I doing this?”.
It’s been rough. And hard. But it is finally time to face that by heading this way any longer, I’m not going anywhere. Even if I did finish my career, what would my job be? I’m not a programmer, simple as that. I can’t understand how I can be happy with a job where I obsessively spend hours looking for that pesky error in my absurdly long and complicated code.
What am I doing now? Well, I’m taking a similar course about computer science.
But this time, it’ll be different.
1. It’s free. I might even get a scholarship (WAIT IS THAT ACTUALLY STILL A THING THAT EXISTS?!?!?)
2. It’s in my town. No more buses or having to refill every day - we can barely afford that.
3. It’s not programming-centered at all. It’s way more job-driven, way more flexible, and it doesn’t consume so much of your time.
4. It’s just two years!
I don’t discard the idea of going back to college in the far future, but for now, I need to drop out. Student loans are huge, Java is a horrible evil monster, our education system sucks.
So, I’m almost out of college. And I’m okay, my family knows, my friends know, and they support me (thankfully). This might be the first actual summer vacation I get since 2007, with no tests waiting for me in September.
I have finally found out what I’m good at, and I want to steer my life in that direction. In the meantime, I’m still trying to earn some money with my art. My Patreon is here. (A little on the nose, don’t you think? Yeah. Capitali$m does weird thing$ to you.)
I’m pretty sure this will turn alright. This might be the best decision I’ve made in years. Better late than never.
6 notes
·
View notes
Text
Why I’m Teaching My Kids to Code
I really don’t want any of my children to be coders for a living.
But I’m teaching them to code.
Here’s why.
My Own Software Development Experience
There was a time in my life when I thought I would spend my next thirty or so years employed in a career, from the time I was in college working as an intern up until my ultimate retirement, that involved writing software at first, then managing a team of software developers.
The coding phase of my career ended up being pretty short-lived.
Here’s how it went down.
When I started college at the age of 21 (I served a two-year volunteer mission in Canada right after high school), I had no real skills to speak of. I spent my childhood up through high school playing sports year-round (football, baseball, basketball, wrestling) and goofing off mostly, not worrying much about how I’d provide for myself and a family later.
My experience as a missionary, more than a thousand miles away from home teaching people about a religion that was hard for most of them to grasp, mostly because they didn’t want to, helped me to grow up quickly. When I returned home from my mission (1997), and it became time for me to educate myself, I received a lot of advice from family and college counselors. Much of it focused on the need to “get good at computers” to become employable in the rapidly accelerating technical economy.
I followed their advice. My first class at Snow College, the school I chose mostly with the aim of playing football initially, was an accelerated pre-semester introduction to computers course. I struggled, but I liked the challenge. I followed that class up by taking three terms learning how to program in C++. At the end of that freshman school year, I realized that I was a horrible coder, and that it wasn’t very natural for me. My code was sloppy. It took me forever to get things to compile, much less to follow the algorithms required to pass off assignments. But I was persistent. I made my way through the three terms with something like a B+ average.
Then I had some experiences that were almost magical for me. I began to notice that my ability to articulate technical topics had lunged forward. Along with the math and engineering classes I took, this computer science and coding regimen was forcing me to be very disciplined about describing how things worked. The responsibility of modeling what happened in real life with functions and variables that I was taught made their way down ultimately to 1’s and 0’s being fed through a complex system that began at hardware components like a motherboard, a central processor, memory devices, communication buses, and several other supporting pieces that came together with an operating system on which interesting software applications could be developed.
In addition to the excitement I had as a rookie in the software development world, I also found out towards the end of that semester from my professor that my newly developed skills were likely sufficient to help me land a summer job that paid more than double what I’d made in previous job making pizzas at Pizza Hut. He threw out the idea that I should be able to land a job making $12+/hour. “Wow!”, I thought, “I guess you could say things are getting pretty serious.”
I later landed a job as an intern with a technology company called Vinca (later purchased by Legato Systems) that paid $14.60/hour. One of the developers I worked with told me he was making over $70k annually, and he expected to see increases in his pay as he moved into management roles, ultimately expecting to make in the six figures range. Learning about that potential, I thought for sure I’d found my career path.
Turns out I hadn’t.
Trying to Survive BYU’s Electrical Engineering Program
After I finished my two years at Snow College (neither of which, incidentally, involved playing football), I transferred to BYU in Provo, Utah. The natural progression of my Pre-engineering Science major at Snow College combined with my experience writing software in C++ seemed to me to be majoring in electrical engineering at BYU.
That ended up being a really bad choice.
My first two semesters as a EE major at BYU involved struggling to push my way through 17.5 credit hours of engineering classes that included complicated electronic circuit theory, advanced multi-variable calculus and linear algebra math, writing programs in assembly language code, and a seemingly never-ending half-credit breadboarding lab in which I found myself (as a color blind knucklehead) unable to figure out the difference between resistors that varied by magnitudes of tens of thousands of ohms. It didn’t help that the teacher assistant for that lab couldn’t EVER be bothered to get up from his video game to help a newbie like me.
Combine that workload with a nagging feeling that I should be dating (looking for a potential spouse, which was a strong religious and cultural priority for me) and the twenty or more hours I put into my programming job each week, and it’s easy to see why I experienced burnout. My excitement at becoming the next technical genius haling from BYU turned into a struggle for survival.
Ever Caught a Football Before?
As I’d attempted to hang on my fellow classmates, trying to see if just associating with them while they worked together on their homework in the commons area of the Clyde Building, I repeatedly found myself not really fitting in socially. Almost none of these people knew anything about college football, the Atlanta Braves or Boston Red Sox, or any other thing I considered to be cool. Every time I heard someone say, “You can’t spell gEEk without double E”, (which was pretty much every day) it made me reconsider who I was being expected to become. This technical persona simply didn’t match very well with who I was.
The culminating experience that made me realize I was not a fit culturally for this group of people came one morning in my ECEN 220 Electrical Circuits Analysis class. Our professor would draw up a circuit on the whiteboard, then ask if someone wanted to come and solve the problem on the board, the reward being a prize.
I watched as this goofy kid confidently (I learned that there is a nerd “swagger” that kind of parallels what good athletes manifest) walked up to the board, ran through some calculations for inductance, capacitance, and resistance using partial derivatives and other math, then ultimately arrived at a solution. The professor asked the class for approval of the student’s ultimate solution (a few steps behind what was happening, I was like, “Yah, looks good to me.”), then moved on with the prize portion of the contest.
He pulled out a little BYU-branded football, the kind they give away as promotions during games, and threw it across the room to this student. What happened next was surprising to me. This guy awkwardly lunged at the ball with some of the worst timing and least coordination I’ve ever seen. The ball went off his fingertips and up in the air, towards the second row of students. Not willing to give up (in a non-athletic kind of way this guy was apparently a fighter), he dove awkwardly into the second row of students, still far from being successful at catching it. His persistence made it seem like he thought that not catching the football was make his work null and void.
I remember thinking to myself, “Wow! This guy has never in his life had a ball thrown in his direction before. Unbelievable!”
It was then that I began to seriously question what I was doing planning a career that would put me right in the middle of that crowd of people, most of whom simply had a much different take on what was fun and interesting in life than I had.
Shortly thereafter my ambitions to become a software developing electrical engineer ended. I remember receiving a test score back from the first major mid-term test from that electronics circuit theory class. I knew I hadn’t prepared well for the test, but I didn’t expect the humiliation that naturally came when I was handed back a test paper that had more correction marks on it than my initial incoherent chicken scratch attempts to solve the problems on the test. My test score: 39%/F-. I immediately got up from my seat and wandered over to the counselor office to discuss how to transfer out of that major.
After ultimately deciding to leave electrical engineering, I went through a list of other degrees I could achieve to satisfy what I thought at the time were my family’s, potential employers’, and society’s unwavering expectations about education. That list included everything from sports coaching to math to a simple online general studies degree. Ultimately I ended up graduating with a BS degree in Manufacturing Engineering Technology with a minor in Business Management. Obtaining that degree took more time and effort than I would have liked, and I ended up having to negotiate my last 30 or so required credit hours with the department heads, convincing them on my third time trying to substitute some engineering classes I took at Snow College for the civil engineering classes I’d missed from BYU.
My last experience writing code full-time was a job I held as the lead developer for a text messaging application startup called Communitect (now Solution Reach). I wrote a significant chunk of the company’s initial codebase in Java in 2001, before calling it quits to ultimately move into the world of entrepreneurship, where I’ve been ever since.
Writing Code Isn’t For Everyone
My experience attempting to become a coder certainly wasn’t a write-off. If I had any reason to think that it was, I wouldn’t be teaching my kids how to do programming.
One thing I have learned from that experience is this: while software development can be a lucrative career, writing code (and similar technical disciplines) certainly isn’t for everyone. In fact, based on my experience as a developer and working with software developers since that time in various roles, I can see that there is a very distinct personality required to be successful at software development.
Much of this I’m going to be speaking in terms of stereotypes, but this description of the typical software developer is not without some data and experience backing it. Many people refer to the software developer personality as INTJ (Introvert – Intuitive Thinking – Judgment) using the Meyers-Briggs personality scale. The brains of software developers typically work quite a bit different from the rest of society. They are typically chronic problem solvers, a strength that allows them to develop complicated software to follow algorithms and solve complex problems, but that also reduces their abilities and inclinations towards other things, like interacting with people in what would be considered by most of society as “normal” or healthy environments, or doing other socially involved or physically demanding activities, like playing sports.
While some part of my personality craves the problem solving elements of being a software developer, that attribute takes a back seat to my natural tendency to want to interact often with people while not looking at a computer screen and my lifelong pursuit of sports and athletic involvement. From my experience, the persona of an athlete or someone who’s heavily involved in sports doesn’t much overlap with the persona of someone who spends his entire day writing and troubleshooting code.
As I guide my kids through the process of discovering who and what they want to become, I am fairly convinced already that spending their full-time careers interacting being fully involved in the community that comprises coders and related professionals won’t be nearly as fulfilling for them as lots of other alternatives.
Speaking about the social implications, I certainly don’t want my kids ever playing networked video games all night long, living in my basement, unmarried, and unmotivated to be more involved in real life social activities. Nor do I want them to think that because they can think faster and solve an algorithm more quickly than most of their peers that they can’t listen to feedback or feel like they know everything there is to know. I especially don’t want them inclined to reason away their belief in God because faith becomes something irrational for them. Coders have done a lot to earn each of those stereotypes.
But I do want them to have a grasp of the fundamentals of software development.
How Learning to Code Helps Non-Coders
When I entered college more than two decades ago, my skill set consisted mostly of tackling people, hitting, catching, and throwing baseballs, and some sweet hip hop dance moves. As I mentioned, I quickly figured out that those “skills” wouldn’t cut it when it came to making money and supporting a family.
Fortunately for me, rather than having my first few semesters of college be filled with soft classes like English (the language I already spoke), history, etc. I found myself learning computer science along with civil, mechanical, and electrical engineering and math topics. That experience completely transformed the way I think.
I learned how to be precise as opposed to being sloppy in the way I described things. In my associations with up-and-coming coders (many of whom wondered why I even bothered to take the classes they were taking), I learned how to become very observant of how things worked as we did our best to model real life things using a programming language. I became much more perceptive of cause and effect relationships. I also became much more of a critical thinker. In fact, my brain was transformed (of necessity) to be able to a find missing semicolon among hundreds of lines of code, which now allows me to find misspellings in a 1,000+ word document within a few seconds of seeing the text.
In summary, learning how to code forces a person’s mind to think a lot like the way a computer thinks, which turns out to be pretty helpful in the 21st Century economy.
The majority of high-paying professions in our current economy require a person to have a solid background in technology. They must understand more about context when it comes to using spreadsheets, understanding how apps work, knowing the ins and outs of the relationship between software and the hardware that makes use of it. Not only that, the most successful need to be armed with the ability to not just regurgitate information (just about the only thing our public schools tend to teach these days), but to figure out new things using their intelligence.
The process of learning to code tends to instill that kind of intelligence among those who have been exposed to the discipline.
With the prevalence of software-related careers, it’s true that there is a higher percentage of software developers who are breaking the traditional mold of the 1980s software geek. In my own career, I’ve seen how a background in software development has uncovered steps for me as an ecommerce business owner to climb to be more successful in my career. I’ve seen how understanding how software is written has given me a better approach to teach Google’s search engine how to send traffic to my websites and how to extract traffic to my Amazon stores from the Amazon search algorithm. The learning process that led to me knowing how to code has been a blessing for me financially, mentally, and even socially in many ways.
I don’t want to code all day long. But I’ve found a pretty good balance for myself between knowing the basics of software development and even understanding how to write software and being able to operate businesses that make use of software written by other people.
I want the same thing for my kids.
The post Why I’m Teaching My Kids to Code appeared first on The Handbook for Happiness, and Success, and Prosperity Prosperopedia.
from WordPress http://bit.ly/2UP7ECN via IFTTT
0 notes