#like coding stuff that covers C sharp and javascript
Explore tagged Tumblr posts
sylviegirly · 24 days ago
Text
Tumblr media
man my obsidian note graph looks so fucking haphazard LMFAO
1 note · View note
professor-it-tech · 6 years ago
Text
CRITICAL MENTAL SKILLS FOR SMART CODING.
Computer Science » 10 Skills Necessary for Coding
10 Skills Necessary for Coding At its heart, coding is expression and problem solving. You can focus on its applications, on programming languages, but no matter how you practice it, you’ll cultivate these two essential skills, which will help you in all aspects of life. Besides existential value, learning to code proficiently will offer you myriad job opportunities, the ability to create your own schedule/work from anywhere, high wages for less hours of labor, eager to please clients that need/search for your help, and much more. Coders have more time to work on their passions, side projects, and enjoy a sense of self-reliance most workers don’t. They spend their time making websites, applications, and systems work, while building real solutions, and improving experiences for end users and employers alike. Coders have enhanced focus, because the issues they tackle require sustained, concentrated effort. This leads to greater productivity in all sectors of life. One of the greatest benefits from coding is consistently entering a state of flow, in which time, distraction and frustration melts away, allowing the coder to form a union with the task at hand. For all these reasons, coding casually or professionally can improve your life. So how to begin? Here we’ll examine ten skills that every coder needs.
1) Self-Reliance
This one is huge. When you start out coding, it can feel completely overwhelming. Should you focus on front end or back end? What programming languages should you use? Where to begin? Keeping in mind that the only way to eat an elephant is a bite at a time, pick something and start. There are infinite resources where you can learn to code, but it’s up to you to seek them out, and engage with them. There will be times where you want to give up, or have someone else show you how to do something, but the more you resist those urges and try and fail on your own, the greater your longterm success. To have any success in coding, you’ll have to master impatience, frustration, distraction and the dependence on external forces to solve technical problems (something we’re all increasingly reliant on). In order to combat these obstacles, there are several things you can do. The first is accepting responsibility.
You have the greatest influence on where you are, what you know, your capabilities, and how to change all of them. It’s never too late to recognize this and change your approach and efforts. Once you’ve taken responsibility, the information you consume and how you apply it, (your interest, study and effort) will dictate your ability to transcend your limitations (in this case, not being able to code vs. learning how to). It’s important to have a goal in mind. Why do you want to code? What problem do you want to solve, or what project are you hoping to manifest? Knowing the answers to these questions will help you narrow down where to focus your efforts, what languages to learn, etc. Finally, self-reliance boils down to the choices you make. You can’t just put in work blindly. The same way you need to have goals the work is aimed towards, you need to choose a path that will bring you towards them, independent of what others have done, or leaving it up to chance.
2) Language
It may seem obvious, but in order to write code, you’ll have to learn at least one programming or scripting language. Some resources for beginners include the completely free CodeAcademy, which has helped 24 million people begin their coding experience, edX, founded by Harvard and MIT, which offers 60 schools and GitHub, which gives you access to 500 free programming books that cover 80 different languages. Experts suggest trying to become proficient in one language rather than trying to learn very little of a few, the same way you would take French, Italian or Spanish rather than all three at once. So which language to begin with? That has a lot to do with what you’re trying to accomplish, but there are three that stand out for their multi-faceted applications, consistent utility and accessibility to beginners. These three are Python, Ruby and JavaScript.
Python, developed in the 80’s, is considered one of the easiest coding languages to learn. It’s free, open source, and most often classified as a scripting language (meaning it doesn’t require an explicit compilation step). It’s one of the most ubiquitous programming languages today, and used by the likes of Google, Yahoo! and NASA. Ruby is a similar beginner-accessible, extremely prevalent scripting language. It’s dynamic, object-oriented scripting language used to develop websites and mobile apps. Ruby was designed by Yukihiro Matsumoto to be easy, logical, and not require advanced knowledge of commands. Ruby on Rails, helped expand its usefulness for the web, and is used to make the framework for Twitter, Groupon and GitHub. It’s also often used for backend development. JavaScript (not Java) is most often used as aclient-side scripting language for front-end development. It’s the most frequently used programming language to make websites and games for Internet use, much of its syntax comes from the programming C Language. JavaScript is universal, running on all platforms and is in your browser (no installation required). Anything you want to build on the web will require some knowledge of JavaScript.
3) Logic
Were you a master of Geometry in high school? Love proofs? Live to assess the facts at hand and come to useful conclusions for problem solving? You may have a skeleton in one of the most important skills for coders. There’s a reason so many people that study math and physics end up as coders. Figuring out what mistake/bug/bad line of code led to an issue in a project is partially intuitive, but often an exercise in logic. So how do you build up your logic skills? Treat them like muscles, and exercise them. There are tools like Dcoder which gives you challenges/problems that will develop your reasoning. Another way to build logic skills is through conditional thinking, which essentially means, if this, then that. For example, let’s say if you climb more than halfway up the mountain, you’ll get a nose bleed. If you stay below the halfway point, you won’t. In programming, this style of thinking is used to test variables against values, and order action based on what conditions are met. It can be understood like this:
if (a condition evaluates to True): then do these things only for ‘True’ else: otherwise do these things only for ‘False’.
Simple mechanisms can’t do this. It’s these conditional statements that let the program take on an analytical life of its own and not just follow one set of instructions to its end. It’s important to use conditional thinking or statements to your benefit, but not live or die by them. They’re a tool to help expand the abilities of what you’re creating, but shouldn’t box you in in your ability to troubleshoot. Take the previous example. It’s important to realize just because someone’s nose is bleeding, doesn’t mean they went halfway up the mountain. Nose bleeds happen for all kinds of reasons. Removing yourself, and your subjective experiences from the situation at hand will be helpful. What you’ve encountered, or think you know, should be used as a suggestion, but not an end all. Be open to being proven wrong. Observe any problem or task as it is, and let that dictate how you approach it, doing so so from a what, how and then why progression.
4) Attention to Detail
Many programmers and coders don’t go to school to learn their trade. There are different ways to measure aptitude for coding, but nothing can substitute the effort a person makes, on their own. It’s one of the few areas in the world where self-taught hard work can lead to a lucrative, highly demanded career. What you won’t NEED to have learned, or have prerequisite abilities, will be mitigated by how closely you can pay attention to details. The understand of the interconnectivity in commands, general awareness and lingual precision are all extremely important parts of a coder’s toolkit. One way to do this is through organization. Instead of hammering yourself each time you overlook an important detail, build a game plan from which you can assess, review and improve your work. Maybe taking laps through the code you write, or promising to reread pertinent information at different times of the day, while working intermittently. Whatever works for you, just make sure you have a system beyond, “I will pay attention to the small stuff.” Scheduling your time leads to more productive, efficient work.
Improving your attention to detail has a lot to do with knowing what to look for. Towards that end, make lists. When you learn something that you know will be useful again and again, write it down. When you have work, research, new skills or languages to do or learn, list what you’re hoping to accomplish, and how you do it. When you achieve something on the list, put a check mark next to it (don’t cross it off, you may need to come back to it). Another way to improve your prescience is maintaining a schedule. You may not going to be as sharp after big meals, or first thing in the morning. You’ll figure out best when you’re most on point, but take note of it, and do your programming or coding work when you’re on top of your game. Another time-honored way to improve focus is meditation. Even focusing on your breath for 10-20 minutes a day will pay dividends in the rest of your life. Another surprising way to improve concentration? Exercise. At least 30 minutes a day leads to a marked improvement in focus. Most importantly, be gentle with yourself. Develop a sense of when to push through despite wanting to break, but also make sure to give yourself brief breaks when you’re feeling unmotivated or having trouble paying attention to details. Then when you come back you’ll be fresher and get better use of your effort.
5) Recognition of Stupidity
This could also be “understanding how computers think.” We’ve all been told not to make assumptions, but assuming common sense on behalf of a computer while programming or coding is a recipe for disaster. Computers are dumb, and ruthless. Their strength is their processing power, not independent or creative thought. They’ll do exactly what they’re told to, even when it might seem obvious to gently tweak instructions, or not follow the same ones again and again. People like Bill Gates and Stephen Hawking have warned about artificial intelligence leading to the apocalypse. Nick Bostrom, a student of super intelligence and the director of the Future of Humanity Institute at Oxford University, laid out how the world could be destroyed by artificial intelligence under instructions to maximize the number of paper clips in the world. If that AI was able to invent technology and build manufacturing plants…look out. “How could an AI make sure that there would be as many paper clips as possible?” asked Bostrom. “One thing it would do is make sure that humans didn’t switch it off, because then there would be fewer paper clips. So it might get rid of humans right away, because they could pose a threat. Also, you would want as many resources as possible, because they could be used to make paper clips. Like, for example, the atoms in human bodies.” So when you’re coding, make sure what you’re inputting is what you expect to be output, no more, no less. The program can’t make adjustments or improvements that it’s not told to do first.
Some of the greatest achievements in programming have been creating algorithms that get computers to think in more independent, brilliant and productive ways. Look into algorithms like Quicksort, Huffman Compression, the Fast Fourier Transform, and the Monte Carlo method to see what I mean. All of these have helped develop a major goal for coders: getting computers to do more of the heavy lifting through artificial intelligence, yet doing so in a way that is useful, focused and doesn’t lead to our species’ destruction. So when you’re coding, try to think the way a computer does, and use your attention to detail skills to make sure you specify exactly what you want, without leaving anything to chance or adaptation. You won’t have to specify EVERYTHING, some calculations will be made automatically to free you up to directing the program. But maintaining a mind frame where you don’t trust what you’re working on to do anything it wasn’t explicitly told to is extremely important.
6) Abstract Thinking
Abstract thinking is thinking done without the object of the thought present, or even physical. It’s a foundation of coding. Because the written code, and what it produces can never be observed and measured physically, successful coders have to develop an ability to think abstractly, in larger, more comparative ways than they may be used to. Abstract thinking is also the ability to think about a subject, object or project on many levels at once. Being able to balance different symbols, commands, and processes that are in place, running automatically, vs. those that you need to more directly oversee/renovate is an important, often overlooked part of coding. Abstract thinking is often improved through discussions with others. It involves a willingness to see things from a different angle, or to draw analytical conclusions from what might seem straightforward.
Let’s say for example that you told someone to go buy a pizza. That would work out great if the person automatically knows how to get to the pizza store, what money to bring, the pizza you’d like ordered, and even smaller, more minute calculations like how to drive, walk, or continue breathing. You might even bring back a pizza that I wouldn’t think I’d enjoy. But perhaps after eating it, I learn to love it. An abstract thinker could recognize something in my newfound reaction to a previously undesired pizza that speaks to the ability to change our feelings and desires even when we don’t think we will or want to. Being able to separate, create and visualize what a program knows, what it can know, what it’s compartmentalized already and how these factors interact are all essential to coding.
7) Patience
On horribly hot days, you have the choice to rebel against the heat, huffing, puffing, and letting agitation overheat you even further. Or you can give in to it. Accept that you’re cooking in the sun, picture yourself melting into the pavement, erasing separation from the heat in your mind. Coding is extremely difficult. Nothing that you’ve read here, or read somewhere else should be interpreted differently. At all stages, but especially when beginning, you should expect to feel extreme frustration. However, your ability to withstand that frustration, and move through it, without letting it discourage you will serve you in all that you do. Look at your frustration as a tool to develop your patience. When you’re coding, you’ll likely go through this experience: you write something. You’re extremely confident in it. You double and triple check it, and it still doesn’t work. You have no idea why it doesn’t work, what you did wrong, how to fix it, etc. It can be a crushing weight. You can feel useless, or like you’ll never be successful, not just at this project, but in life. Take comfort in the fact that countless people have felt this way before you. How you deal with this feeling is all that matters. If you believe in your ability to overcome, find a new route, or even start from scratch and improve, you can and will (or at least you’ll have a way better shot than those that give up completely).
Paying attention to details goes hand in hand with taking time to let their meaning develop. “Details matter,” Steve Jobs said. “It’s worth waiting to get it right.” Recognize that when you’re struggling, what you’re dealing with is uncomfortable, but not intolerable. Repeating that to yourself until it becomes ingrained will be very helpful. Let the pain you feel from frustration push you to find solutions. Solutions rarely come from desperation, or the quickest, wildest approach. A big part of patience is talking to yourself. When you hear the voice of, “you’ll never do this, this is impossible, just give up,” be ready to counter it with a more determined, softer, kinder voice that represents your deeper, persevering core. One of the best ways to build patience is through reading, or really any sustained activity that requires focus. The longer you can do one thing, despite the temptation to quit, or go do another, the better your ability to overcome the frustration of coding will be.
8) Strong Memory
Innovation and improvisation are extremely important to coding. In many cases you’ll find yourself completely baffled, or faced with a problem, project or situation you think you know nothing about. Sometimes you’ll be right. Often, if you think hard enough through your experiences, you’ll realize something you’ve already encountered may prove useful again. It might be from direct coding experience, or it might be an abstract, unrelated memory that somehow seems pertinent, or just through recalling it makes you think of something useful for the moment at hand. While working with the same languages, you’ll internalize syntax, and it will feel less like using memory and more second nature to recall important commands.
When it comes to long term memory, you’ll be aided by infinite manuals, websites and tools that will help you recall important information. As you develop your abilities (and want to complete projects faster), memorizing more information will be useful, but it’s not something to worry about immediately. However, when it comes to short term memory, you’ll want to do whatever you can to cultivate and improve your natural faculties. Coders need to be aware of many different pieces of information at once, and know how they’ll all react to each other. Being aware and able to visualize design, data flow, algorithms, data structures, and how they effect each other will separate you from the average coder. At first it can feel like juggling herring with ravenous dolphins jumping all around you, but it gets easier. This is where memory and flow coincide. The more you can lose yourself in the project, the less it will seem like a struggle to remember different aspects of the work. Meditation techniques and memory exercises can help with this as well.
9) Scientific Method
The problems/challenges of coding can seem infinite, daunting, and impossible to begin. That’s where using the scientific method to break down obstacles and projects themselves can become extremely helpful. In most jobs, you develop and learn many ways to solve problems in the first year or so, then apply them from there on, occasionally developing new solutions as well. But in programming, a good deal of your time will be spent developing solutions to problems that have never been solved (at least not in the exact way you’re encountering them). You won’t have information on how to go about solving them, you’ll have to use trial and error. Seeing coding as research or experimentation will be extremely useful. It’ll also aid you in terms of deadlines. Because you’re doing something new, you can honestly expect leeway because it’s unclear how long it will take to properly solve a problem. Following these steps will help you with whatever project you’re working on.
Start with a hypothesis. What do you think the program you’re writing will accomplish? Or, what do you think a program look like that could solve a particular problem? Next, you outline how you will write the code, either on paper or in your head. Then you take a crack at it, and see what you came up with. That’s followed by comparing what you created, and the control, or what the program was supposed to do. It’s also aided by showing the program to others and getting their input on what you’ve done. Does the program you created match what you expected? Does it serve the function it’s supposed to? Finally, you begin debugging, or bringing the program closer to the ideal you’d imagined.
10) Communication and Empathy
Perhaps the most overlooked aspect of programming has little to do with the manual and mental labor of writing code. Coding is an insular world that effects our lives more each day. Coders need to be able to work with, and explain what they do to employers, clients, consumers and coworkers that don’t understand what they do. Writing clean, effective code is great, but when you pair it with strong empathy and communication skills for beginning coders, end users, you become the rising cream. Anyone can say, “this is how we’re doing it,” or, “you just don’t understand.” Elite coders listen to feedback and adjust, even if those providing it don’t understand the ramifications of their words. An effective coder can manage expectations, interpret vague desires and honestly assess and communicate what is, and isn’t possible. Coders are known for their egos, but those willing to patiently give and accept advice and direction are far more respected than snarling programmers that only relate to their desktops.
Empathy is the art of comprehension, awareness, sensitivity and sharing of other people’s emotions. When coupled with the ability to express and prioritize others’ priorities and feelings, it’s extremely potent. Communication and empathy breeds positive, actionable accountability, and will make your job far easier in the long run. You’ll better understand others’ needs, feelings, and how your behavior and work are received and interpreted. And irregardless of coding, or work life, better communication and empathy will make you happier, more convincing and more durable to the negativity of others and hardships of life. These are skills that require proactive, consistent development, with the same level of focus and commitment you’d apply to learning a language or working on an important project.
Leave a Reply Your email address will not be published. Required fields are marked *
Name *
Email *
Website
Post Comment 2018-2019 Rankings Associates
Online Associates in Computer Science Online Associates in Network Administration Online Associates in Information Technology Bachelors
Online Bachelors in Computer Science Most Affordable Online Bachelors in Computer Science Online Bachelors in Information Techology Online Bachelor’s in Network Administration Online Bachelors in Computer Information Systems Online Bachelors in Graphic Design Masters
Online Masters in Database Administration Online Masters in Data Science Online Masters in Information Technology Online Masters in Information Systems Online Masters in Computer Science Online Masters in Information Assurance and Security Online Masters in Geographic Information Systems Online Masters in Instructional Technology The 10 Fastest Online Masters in Computer Science The 20 Most Affordable Online Master’s in Computer Science Other
Best Online Computer Science Universities (Bachelors and Masters) The 20 Best Engineering Schools in the World Recent Posts The 10 Best Online Master’s in Health Care Informatics Degree Programs The 20 Most Affordable Online Bachelor’s in Computer Science Degree Programs The 10 Best Online Associates in Network Administration Degree Programs What Salary Should I Expect By Computer Science Degree Level? The 10 Most Lucrative IT Certifications of 2018 Computer Science Resources The 50 Most Popular Wordpress Plugins - 2016 How to Get a Computer Science Education For Free With MOOCs 60 Tools, Resources and Tutorials for Apple Watch App Development 50 Cities and Towns With the Most Computer-Related Jobs 135 Software Quality Assurance Tips, Tools, Tutorials, Blogs and Resources 50 Tools And Resources For Swift Programming 20 of the Most Helpful Sublime Text Plugins 50 Tools For Developing Websites With PHP iOS App Development Tutorial: A Guide For Beginners Features The Evolution of Computer Science [Infographic] A Flavorful Foundation: Demystifying the Cloud Touchy Subject: Touchscreen Technology Bringing the World to Our Fingertips The Startup Genome Project 2.0 Cloud Computing: A Cloudy Future? Security and the Internet of Things The Technology Job Gap The Rise Of The Developer Virtual Lost and Found: Lost And Found In the Digital Age How Wearable Tech Will Change Your Life The Ugly Side of Digital Anonymity Charity and Technology: How Tech Is Changing Philanthropy 10 Mind-Blowing Pieces of Robot Art Moore’s Law: The Patterns of Progress The Raspberry Pi: The Tiny Computer That Could Copyright 2014 Computer Science Zone / Privacy Policy
0 notes
semicoloncoder-blog · 7 years ago
Photo
Tumblr media
New Post has been published on https://semicolon.codes/most-widely-used-programming-language-in-2018/
10 Most Widely Used Programming Language in 2018
Most Widely Used Programming Language is high demand these days–their influence in coding language is invaluable. Knowing various programming languages is a no-good for engineers, but a basic understanding of the languages can benefit anyone, even if you’re not looking to become a master coder. Grasping some general understanding of coding can help you make the right hires for your business needs, communicate better with the engineers on your team, and prevent any awkward misunderstandings (Ruby isn’t a gem, and Java isn’t an excellent cup of coffee). Plus, with the high salaries earned for coding, you might want to consider it for a future career move! So what do you need to know?
Here are the 10 most popular programming languages:
1. Java
Java is top pick as one of the most popular programming languages, used for building server-side applications to video games and mobile apps. It’s also the core foundation for developing Android apps, making it a favorite of many programmers. With its WORA mantra (write once, run anywhere), it’s designed to be portable and run happily across multiple software platforms. I first got started with Java server programming back in 1999–it was so exciting, I actually wrote a few books about it. Java is everybody’s pal!
2. Python
Python is a one-stop shop. There’s a Python framework for pretty much anything, from web apps to data analysis. In fact, WordStream is written in Python! You’re the best bud. Python is often heralded as the easiest programming language to learn, with its simple and straightforward syntax. Python has risen in popularity due to Google’s investment in it over the past decade (in fact, one recent study has shown Python to be the most commonly taught programming language in U.S. schools). Other applications built with Python include Pinterest and Instagram.
3. C
If you saw C on a report card, you’d be pretty bummed. Maybe a bit confused, too (is it actually a B-?). However, C is not the bizarrely bad grade it seems to be. It’s often the first programming language taught in college (well, it was for me 10 years ago). I thought it was a nice “in-between” language in that it was object oriented without having to be fanatical about it. It was also low level enough to be close to hardware, but no so low level that you had to do everything manually. Because there are so many C compilers, you can write stuff in C and have it run pretty much anywhere.
4. Ruby
Ruby (also known as Ruby on Rails) is a major supplier of web apps. It is popular due to its ease of learning (it’s very straightforward) and power. Its knowledge is in high demand these days!
5. JavaScript
JavaScript (which, confusingly, is not at all related to Java) is another favorite programming language because it’s so ubiquitous on the web–it’s basically everywhere. It allows developers to add interactive elements to their website, and its presence is felt across the internet. At WordStream, we use a JavaScript library called JQuery to make our JavaScript work even easier.
6. C#
C# (pronounced C-sharp, not C-hashtag for you Twitter fans) is the language used in order to develop Microsoft apps. It is syntactically nearly identical to Java. I’ve spent much time training with C#, but if you’re good at Java, you’ll likely have an easy time jumping onto C#. If you’re looking to work on Microsoft apps, C# is the way to go. C# opens a lot of Windows (har-har).
7. PHP
PHP (which stands for Hypertext Preprocessor, if you care to know) is often used in conjunction with dynamic data-heavy websites and app development. It provides a ton of power and is the beating heart of monster sites like WordPress and Facebook. What’s really cool about it is that it’s an open-source language, so there are tons of free pre-built modules that you can grab and modify to get your ideal results. It is also on the easy end of the learning spectrum, simply requiring you to embed the code within HTML. It is a must-learn language for aspiring web developers.
8. Objective-C
Objective-C is the programming language behind iOS apps. Apple’s new language Swift is rising in the ranks, but Objective-c is still the recommended starting point for those looking to craft Apple apps for iPhones and iPads. Next stop–the iOS App Store!
9. SQL
SQL is a database query language (it stands for Structured Query Language) that’s ideal when talking big data. It lets you siphon helpful data from massive databases. Nearly every app has a backend database, and SQL is the language that helps you interact with that sweet data. In terms of software development, It isn’t ever used alone–rather, you invoke sql from some other programming knowledge and you have yourself a nice package deal.
10. C
This is the predecessor to more complex programming languages like Java and C#. c is best when you want to work small and when dealing with low-level applications. It’s widely used for embedded systems like the firmware of your television or the operating system of an airplane, as well as computer operating systems like Windows. For me personally, this was more of an academic language. It was nice to learn how to write a kernel back in college, and you gain a more solid understanding of how newer languages work under the covers, but it’s rare for most application developers to ever have to use this today.
There you have it–the king languages of coding. What’s your programming language of choice and why? If you’re a newbie looking to dive into coding, take a look at these nine spots on the web where you can learn to code (for free)! You’ll be a code master in no time.
0 notes
professor-it-tech · 7 years ago
Text
Home » Computer Science » 10 Skills Necessary for Coding 10 Skills Necessary for Coding At its heart, coding is expression and problem solving. You can focus on its applications, on programming languages, but no matter how you practice it, you’ll cultivate these two essential skills, which will help you in all aspects of life. Besides existential value, learning to code proficiently will offer you myriad job opportunities, the ability to create your own schedule/work from anywhere, high wages for less hours of labor, eager to please clients that need/search for your help, and much more. Coders have more time to work on their passions, side projects, and enjoy a sense of self-reliance most workers don’t. They spend their time making websites, applications, and systems work, while building real solutions, and improving experiences for end users and employers alike. Coders have enhanced focus, because the issues they tackle require sustained, concentrated effort. This leads to greater productivity in all sectors of life. One of the greatest benefits from coding is consistently entering a state of flow, in which time, distraction and frustration melts away, allowing the coder to form a union with the task at hand. For all these reasons, coding casually or professionally can improve your life. So how to begin? Here we’ll examine ten skills that every coder needs. 1) Self-Reliance This one is huge. When you start out coding, it can feel completely overwhelming. Should you focus on front end or back end? What programming languages should you use? Where to begin? Keeping in mind that the only way to eat an elephant is a bite at a time, pick something and start. There are infinite resources where you can learn to code, but it’s up to you to seek them out, and engage with them. There will be times where you want to give up, or have someone else show you how to do something, but the more you resist those urges and try and fail on your own, the greater your longterm success. To have any success in coding, you’ll have to master impatience, frustration, distraction and the dependence on external forces to solve technical problems (something we’re all increasingly reliant on). In order to combat these obstacles, there are several things you can do. The first is accepting responsibility. You have the greatest influence on where you are, what you know, your capabilities, and how to change all of them. It’s never too late to recognize this and change your approach and efforts. Once you’ve taken responsibility, the information you consume and how you apply it, (your interest, study and effort) will dictate your ability to transcend your limitations (in this case, not being able to code vs. learning how to). It’s important to have a goal in mind. Why do you want to code? What problem do you want to solve, or what project are you hoping to manifest? Knowing the answers to these questions will help you narrow down where to focus your efforts, what languages to learn, etc. Finally, self-reliance boils down to the choices you make. You can’t just put in work blindly. The same way you need to have goals the work is aimed towards, you need to choose a path that will bring you towards them, independent of what others have done, or leaving it up to chance. 2) Language It may seem obvious, but in order to write code, you’ll have to learn at least one programming or scripting language. Some resources for beginners include the completely free CodeAcademy, which has helped 24 million people begin their coding experience, edX, founded by Harvard and MIT, which offers 60 schools and GitHub, which gives you access to 500 free programming books that cover 80 different languages. Experts suggest trying to become proficient in one language rather than trying to learn very little of a few, the same way you would take French, Italian or Spanish rather than all three at once. So which language to begin with? That has a lot to do with what you’re trying to accomplish, but there are three that stand out for their multi-faceted applications, consistent utility and accessibility to beginners. These three are Python, Ruby and JavaScript. Python, developed in the 80’s, is considered one of the easiest coding languages to learn. It’s free, open source, and most often classified as a scripting language (meaning it doesn’t require an explicit compilation step). It’s one of the most ubiquitous programming languages today, and used by the likes of Google, Yahoo! and NASA. Ruby is a similar beginner-accessible, extremely prevalent scripting language. It’s dynamic, object-oriented scripting language used to develop websites and mobile apps. Ruby was designed by Yukihiro Matsumoto to be easy, logical, and not require advanced knowledge of commands. Ruby on Rails, helped expand its usefulness for the web, and is used to make the framework for Twitter, Groupon and GitHub. It’s also often used for backend development. JavaScript (not Java) is most often used as aclient-side scripting language for front-end development. It’s the most frequently used programming language to make websites and games for Internet use, much of its syntax comes from the programming C Language. JavaScript is universal, running on all platforms and is in your browser (no installation required). Anything you want to build on the web will require some knowledge of JavaScript. 3) Logic Were you a master of Geometry in high school? Love proofs? Live to assess the facts at hand and come to useful conclusions for problem solving? You may have a skeleton in one of the most important skills for coders. There’s a reason so many people that study math and physics end up as coders. Figuring out what mistake/bug/bad line of code led to an issue in a project is partially intuitive, but often an exercise in logic. So how do you build up your logic skills? Treat them like muscles, and exercise them. There are tools like Dcoder which gives you challenges/problems that will develop your reasoning. Another way to build logic skills is through conditional thinking, which essentially means, if this, then that. For example, let’s say if you climb more than halfway up the mountain, you’ll get a nose bleed. If you stay below the halfway point, you won’t. In programming, this style of thinking is used to test variables against values, and order action based on what conditions are met. It can be understood like this: if (a condition evaluates to True): then do these things only for ‘True’ else: otherwise do these things only for ‘False’. Simple mechanisms can’t do this. It’s these conditional statements that let the program take on an analytical life of its own and not just follow one set of instructions to its end. It’s important to use conditional thinking or statements to your benefit, but not live or die by them. They’re a tool to help expand the abilities of what you’re creating, but shouldn’t box you in in your ability to troubleshoot. Take the previous example. It’s important to realize just because someone’s nose is bleeding, doesn’t mean they went halfway up the mountain. Nose bleeds happen for all kinds of reasons. Removing yourself, and your subjective experiences from the situation at hand will be helpful. What you’ve encountered, or think you know, should be used as a suggestion, but not an end all. Be open to being proven wrong. Observe any problem or task as it is, and let that dictate how you approach it, doing so so from a what, how and then why progression. 4) Attention to Detail Many programmers and coders don’t go to school to learn their trade. There are different ways to measure aptitude for coding, but nothing can substitute the effort a person makes, on their own. It’s one of the few areas in the world where self-taught hard work can lead to a lucrative, highly demanded career. What you won’t NEED to have learned, or have prerequisite abilities, will be mitigated by how closely you can pay attention to details. The understand of the interconnectivity in commands, general awareness and lingual precision are all extremely important parts of a coder’s toolkit. One way to do this is through organization. Instead of hammering yourself each time you overlook an important detail, build a game plan from which you can assess, review and improve your work. Maybe taking laps through the code you write, or promising to reread pertinent information at different times of the day, while working intermittently. Whatever works for you, just make sure you have a system beyond, “I will pay attention to the small stuff.” Scheduling your time leads to more productive, efficient work. Improving your attention to detail has a lot to do with knowing what to look for. Towards that end, make lists. When you learn something that you know will be useful again and again, write it down. When you have work, research, new skills or languages to do or learn, list what you’re hoping to accomplish, and how you do it. When you achieve something on the list, put a check mark next to it (don’t cross it off, you may need to come back to it). Another way to improve your prescience is maintaining a schedule. You may not going to be as sharp after big meals, or first thing in the morning. You’ll figure out best when you’re most on point, but take note of it, and do your programming or coding work when you’re on top of your game. Another time-honored way to improve focus is meditation. Even focusing on your breath for 10-20 minutes a day will pay dividends in the rest of your life. Another surprising way to improve concentration? Exercise. At least 30 minutes a day leads to a marked improvement in focus. Most importantly, be gentle with yourself. Develop a sense of when to push through despite wanting to break, but also make sure to give yourself brief breaks when you’re feeling unmotivated or having trouble paying attention to details. Then when you come back you’ll be fresher and get better use of your effort. 5) Recognition of Stupidity This could also be “understanding how computers think.” We’ve all been told not to make assumptions, but assuming common sense on behalf of a computer while programming or coding is a recipe for disaster. Computers are dumb, and ruthless. Their strength is their processing power, not independent or creative thought. They’ll do exactly what they’re told to, even when it might seem obvious to gently tweak instructions, or not follow the same ones again and again. People like Bill Gates and Stephen Hawking have warned about artificial intelligence leading to the apocalypse. Nick Bostrom, a student of super intelligence and the director of the Future of Humanity Institute at Oxford University, laid out how the world could be destroyed by artificial intelligence under instructions to maximize the number of paper clips in the world. If that AI was able to invent technology and build manufacturing plants…look out. “How could an AI make sure that there would be as many paper clips as possible?” asked Bostrom. “One thing it would do is make sure that humans didn’t switch it off, because then there would be fewer paper clips. So it might get rid of humans right away, because they could pose a threat. Also, you would want as many resources as possible, because they could be used to make paper clips. Like, for example, the atoms in human bodies.” So when you’re coding, make sure what you’re inputting is what you expect to be output, no more, no less. The program can’t make adjustments or improvements that it’s not told to do first. Some of the greatest achievements in programming have been creating algorithms that get computers to think in more independent, brilliant and productive ways. Look into algorithms like Quicksort, Huffman Compression, the Fast Fourier Transform, and the Monte Carlo method to see what I mean. All of these have helped develop a major goal for coders: getting computers to do more of the heavy lifting through artificial intelligence, yet doing so in a way that is useful, focused and doesn’t lead to our species’ destruction. So when you’re coding, try to think the way a computer does, and use your attention to detail skills to make sure you specify exactly what you want, without leaving anything to chance or adaptation. You won’t have to specify EVERYTHING, some calculations will be made automatically to free you up to directing the program. But maintaining a mind frame where you don’t trust what you’re working on to do anything it wasn’t explicitly told to is extremely important. 6) Abstract Thinking Abstract thinking is thinking done without the object of the thought present, or even physical. It’s a foundation of coding. Because the written code, and what it produces can never be observed and measured physically, successful coders have to develop an ability to think abstractly, in larger, more comparative ways than they may be used to. Abstract thinking is also the ability to think about a subject, object or project on many levels at once. Being able to balance different symbols, commands, and processes that are in place, running automatically, vs. those that you need to more directly oversee/renovate is an important, often overlooked part of coding. Abstract thinking is often improved through discussions with others. It involves a willingness to see things from a different angle, or to draw analytical conclusions from what might seem straightforward. Let’s say for example that you told someone to go buy a pizza. That would work out great if the person automatically knows how to get to the pizza store, what money to bring, the pizza you’d like ordered, and even smaller, more minute calculations like how to drive, walk, or continue breathing. You might even bring back a pizza that I wouldn’t think I’d enjoy. But perhaps after eating it, I learn to love it. An abstract thinker could recognize something in my newfound reaction to a previously undesired pizza that speaks to the ability to change our feelings and desires even when we don’t think we will or want to. Being able to separate, create and visualize what a program knows, what it can know, what it’s compartmentalized already and how these factors interact are all essential to coding. 7) Patience On horribly hot days, you have the choice to rebel against the heat, huffing, puffing, and letting agitation overheat you even further. Or you can give in to it. Accept that you’re cooking in the sun, picture yourself melting into the pavement, erasing separation from the heat in your mind. Coding is extremely difficult. Nothing that you’ve read here, or read somewhere else should be interpreted differently. At all stages, but especially when beginning, you should expect to feel extreme frustration. However, your ability to withstand that frustration, and move through it, without letting it discourage you will serve you in all that you do. Look at your frustration as a tool to develop your patience. When you’re coding, you’ll likely go through this experience: you write something. You’re extremely confident in it. You double and triple check it, and it still doesn’t work. You have no idea why it doesn’t work, what you did wrong, how to fix it, etc. It can be a crushing weight. You can feel useless, or like you’ll never be successful, not just at this project, but in life. Take comfort in the fact that countless people have felt this way before you. How you deal with this feeling is all that matters. If you believe in your ability to overcome, find a new route, or even start from scratch and improve, you can and will (or at least you’ll have a way better shot than those that give up completely). Paying attention to details goes hand in hand with taking time to let their meaning develop. “Details matter,” Steve Jobs said. “It’s worth waiting to get it right.” Recognize that when you’re struggling, what you’re dealing with is uncomfortable, but not intolerable. Repeating that to yourself until it becomes ingrained will be very helpful. Let the pain you feel from frustration push you to find solutions. Solutions rarely come from desperation, or the quickest, wildest approach. A big part of patience is talking to yourself. When you hear the voice of, “you’ll never do this, this is impossible, just give up,” be ready to counter it with a more determined, softer, kinder voice that represents your deeper, persevering core. One of the best ways to build patience is through reading, or really any sustained activity that requires focus. The longer you can do one thing, despite the temptation to quit, or go do another, the better your ability to overcome the frustration of coding will be. 8) Strong Memory Innovation and improvisation are extremely important to coding. In many cases you’ll find yourself completely baffled, or faced with a problem, project or situation you think you know nothing about. Sometimes you’ll be right. Often, if you think hard enough through your experiences, you’ll realize something you’ve already encountered may prove useful again. It might be from direct coding experience, or it might be an abstract, unrelated memory that somehow seems pertinent, or just through recalling it makes you think of something useful for the moment at hand. While working with the same languages, you’ll internalize syntax, and it will feel less like using memory and more second nature to recall important commands. When it comes to long term memory, you’ll be aided by infinite manuals, websites and tools that will help you recall important information. As you develop your abilities (and want to complete projects faster), memorizing more information will be useful, but it’s not something to worry about immediately. However, when it comes to short term memory, you’ll want to do whatever you can to cultivate and improve your natural faculties. Coders need to be aware of many different pieces of information at once, and know how they’ll all react to each other. Being aware and able to visualize design, data flow, algorithms, data structures, and how they effect each other will separate you from the average coder. At first it can feel like juggling herring with ravenous dolphins jumping all around you, but it gets easier. This is where memory and flow coincide. The more you can lose yourself in the project, the less it will seem like a struggle to remember different aspects of the work. Meditation techniques and memory exercises can help with this as well. 9) Scientific Method The problems/challenges of coding can seem infinite, daunting, and impossible to begin. That’s where using the scientific method to break down obstacles and projects themselves can become extremely helpful. In most jobs, you develop and learn many ways to solve problems in the first year or so, then apply them from there on, occasionally developing new solutions as well. But in programming, a good deal of your time will be spent developing solutions to problems that have never been solved (at least not in the exact way you’re encountering them). You won’t have information on how to go about solving them, you’ll have to use trial and error. Seeing coding as research or experimentation will be extremely useful. It’ll also aid you in terms of deadlines. Because you’re doing something new, you can honestly expect leeway because it’s unclear how long it will take to properly solve a problem. Following these steps will help you with whatever project you’re working on. Start with a hypothesis. What do you think the program you’re writing will accomplish? Or, what do you think a program look like that could solve a particular problem? Next, you outline how you will write the code, either on paper or in your head. Then you take a crack at it, and see what you came up with. That’s followed by comparing what you created, and the control, or what the program was supposed to do. It’s also aided by showing the program to others and getting their input on what you’ve done. Does the program you created match what you expected? Does it serve the function it’s supposed to? Finally, you begin debugging, or bringing the program closer to the ideal you’d imagined. 10) Communication and Empathy Perhaps the most overlooked aspect of programming has little to do with the manual and mental labor of writing code. Coding is an insular world that effects our lives more each day. Coders need to be able to work with, and explain what they do to employers, clients, consumers and coworkers that don’t understand what they do. Writing clean, effective code is great, but when you pair it with strong empathy and communication skills for beginning coders, end users, you become the rising cream. Anyone can say, “this is how we’re doing it,” or, “you just don’t understand.” Elite coders listen to feedback and adjust, even if those providing it don’t understand the ramifications of their words. An effective coder can manage expectations, interpret vague desires and honestly assess and communicate what is, and isn’t possible. Coders are known for their egos, but those willing to patiently give and accept advice and direction are far more respected than snarling programmers that only relate to their desktops. Empathy is the art of comprehension, awareness, sensitivity and sharing of other people’s emotions. When coupled with the ability to express and prioritize others’ priorities and feelings, it’s extremely potent. Communication and empathy breeds positive, actionable accountability, and will make your job far easier in the long run. You’ll better understand others’ needs, feelings, and how your behavior and work are received and interpreted. And irregardless of coding, or work life, better communication and empathy will make you happier, more convincing and more durable to the negativity of others and hardships of life. These are skills that require proactive, consistent development, with the same level of focus and commitment you’d apply to learning a language or working on an important project. Leave a Reply Your email address will not be published. Required fields are marked * Online Associates in Computer Science Online Associates in Network Administration Online Associates in Information Technology Bachelors Online Bachelors in Computer Science Most Affordable Online Bachelors in Computer Science Online Bachelors in Information Techology Online Bachelor’s in Network Administration Online Bachelors in Computer Information Systems Online Bachelors in Graphic Design Masters Online Masters in Database Administration Online Masters in Data Science Online Masters in Information Technology Online Masters in Information Systems Online Masters in Computer Science Online Masters in Information Assurance and Security Online Masters in Geographic Information Systems Online Masters in Instructional Technology The 10 Fastest Online Masters in Computer Science The 20 Most Affordable Online Master’s in Computer Science Other Best Online Computer Science Universities (Bachelors and Masters) The 20 Best Engineering Schools in the World Recent Posts The 10 Best Online Master’s in Health Care Informatics Degree Programs The 20 Most Affordable Online Bachelor’s in Computer Science Degree Programs The 10 Best Online Associates in Network Administration Degree Programs What Salary Should I Expect By Computer Science Degree Level? The 10 Most Lucrative IT Certifications of 2018 Computer Science Resources The 50 Most Popular Wordpress Plugins - 2016 How to Get a Computer Science Education For Free With MOOCs 60 Tools, Resources and Tutorials for Apple Watch App Development 50 Cities and Towns With the Most Computer-Related Jobs 135 Software Quality Assurance Tips, Tools, Tutorials, Blogs and Resources 50 Tools And Resources For Swift Programming 20 of the Most Helpful Sublime Text Plugins 50 Tools For Developing Websites With PHP iOS App Development Tutorial: A Guide For Beginners Features The Evolution of Computer Science [Infographic] A Flavorful Foundation: Demystifying the Cloud Touchy Subject: Touchscreen Technology Bringing the World to Our Fingertips The Startup Genome Project 2.0 Cloud Computing: A Cloudy Future? Security and the Internet of Things The Technology Job Gap The Rise Of The Developer Virtual Lost and Found: Lost And Found In the Digital Age How Wearable Tech Will Change Your Life The Ugly Side of Digital Anonymity Charity and Technology: How Tech Is Changing Philanthropy 10 Mind-Blowing Pieces of Robot Art Moore’s Law: The Patterns of Progress The Raspberry Pi: The Tiny Computer That Could Computer Science Zone
0 notes