Is using developer tutorials cheating? Or are they the steps you need to take to move from beginner to advanced developer?
Imitation is the sincerest form of flattery…and in some cases, it’s also the quickest way to a lawsuit. Beginner devs are often cautious (and quite rightly so) when looking at someone else’s work/tutorial and wonder if making something similar is ‘cheating’?
Generally speaking, “it’s not cheating. Everything that you see in this world, whether it be software development, music, martial arts -whatever, it’s all based on other people’s work.” Some would even argue that’s how things evolve and get better; by different people messing around and riffing on the same idea. BUT, let’s clarify that, “if you’re stealing it; line for line, that’s bad -it’s illegal and it’s immoral. But if you’re learning how to do something…it’s not cheating to do a tutorial and then based off of that tutorial, you build your own app.” Of course, please do your due diligence, for example, “unless they give you specific permission to copy the code, don’t copy the code. But you can basically learn from it, and then write your own thing accordingly.”
At the end of the day your code/project will be different because everybody’s needs are different, so your app, project, etc, will be not be a carbon copy unless you want it to be…in which case lawyer up! But everyone had to start out somewhere and they became experienced by using what they saw and adding their own thing to reflect the needs of their client, employer, or the very project they were creating.
The VLOG goes into greater detail and you should check it out. Go out there and create, learn and be better than you were. -Enjoy!
Becoming a successful developer has much more to do than just code. You need to learn the top 5 foundational life skills:
If you follow the VLOGs or the articles you know that the only thing we love more than foundational skills is ‘top’ lists: top 5, top 10, top 8 – we love ’em!! So when we got to release a ‘top‘ list about foundational skills, you better believe we went to the moon and back, baby! These are life skills – sure, they can make you better at your job, but they also make you a better all around human, and that’s what makes them great.
1. Communication Skills: ” We talk about this in terms of software development, talk about this in terms of business, talk about this in terms of dating! If you know how to talk and you can communicate well and listen well, etc, etc, …great communication skills in something very important.”
2. Tech/Coding Skills: “I believe even if you don’t want to become a coder, you should learn the basics of coding: understanding technology. Because all businesses depend on coding and technology.” For example: “A butcher needs a good website, they need to understand the social media landscape, they need to know what tech is available to help automate and streamline their business -and this is a totally non-tech business.” “…Learning technology and how to code, it may not be as important as reading and writing, but it’s up there…”
3. Financial Skills: I know you may not physically be nodding your head right now but somewhere in the back of your brain, your unconscious mind definitely is. “This is something that will assure your sanity and a less stressful life. If you just learn some basic financial skills -basic saving: #1<save!>, and #2: basic investing- very important. Your life will be so much easier if you just learn to save and invest properly -trust me, it makes a HUGE difference.”
4. Lizard Wizard Skills: “Arguably the most important…psychology/behavioral psychology: understanding how our brains work, how everybody’s brains work -it plays a huge role in terms of all the other skills in your life.” If you have a chance google: ‘lizard brain’ and prepare to be blown away…
5. Business Skills: “How to make money; whether you’re going to work for people, freelancing, or starting your own business…”. Wondering how business skills help if you’re working for someone? “If you can understand how the decision-makers think (if you understand how business works), even as an employee it will help you better navigate within that context. It will help you rise up in the ranks higher (if that’s your goal), it will help you to understand how to negotiate better salaries, etc, etc.”
So there you have it. Check out the VLOG for more of this smiling mug (face), and keep on being a good human! -Enjoy!
The proper psychology of investing and buying, plus lizard brain psych tip.
In so many things we are striving to get, whether it be a promotion or even an item on sale, we tell ourselves ‘be prepared to not get what you want’. This kind of thinking puts us in the realm of calm acceptance (for example not getting your annual raise or having the item that’s on sale be sold out), and opens up a whole new pathway to the next thought, ‘ am I prepared to sacrifice that thing I wanted?’ Or ‘what do I do then?’
We should also ask ourselves if we’re ready to accept rejection from others, are we able to reject the offers of others? To simply walkaway from things we don’t want? Can we even bring ourselves to do that anymore? “Whenever you go into any transaction -any business deal- you have to go in there with the mindset that you don’t really want it…that you’re prepared to walk away. As soon as you find yourself ‘jonesing’ for something…as soon as you’re in that psychology, then you’re putting yourself at a huge disadvantage -you have to go in there very, very, very lukewarm at best- so you keep your mind clear”.
It all goes back to the ‘lizard’ brain -that most primitive part of our brain- which we’ve talked about in past VLOGs. The same people trying to sell you things know that, “emotions dominate our decision-making processes. So you can use your cognitive mind to influence the lizard in a proper way, by setting a frame -setting an expectation.” It’s hard to do but you’re essentially teaching yourself not to be reactionary, not to flinch and ‘hit back’…to simply turn around and say, ‘no thanks’ and walk away in control. If you think it’s gonna be hard to do in business, wait til you fail to do it in your personal life!
The VLOG goes into a much deeper dive, you should check it out. Keep in control of your emotions and you can keep that lizard brain in check. -Enjoy!
Any experienced developer will tell you that soft skills makes the difference, if you want to move up in the ranks … maybe become a tech lead, or software architect.
Our culture used to idolize the cowboy. That loner who does things his own way and to hell with the consequences. He doesn’t say much unless he’s telling people what’s what, and rides off into the sunset with everyone all the better for having come into contact with him…
And what did we used to say about anyone who didn’t automatically strike out as a tough guy? Anyone who used words and diplomacy? We’d say they were “emotionally intelligent”; that they has a set of “soft skills”… oddly patronizing, no?
Well, the truth is that the “cowboy” is a blowhard that can’t work well in the group, and “the group” is the better way to get things done. Talking to people, working with them and making them feel their opinion/input matters. That’s how you build relationships (business or otherwise) that will last.
Check out the video, it expertly touches on what we’ve hinted at, but it’s pretty much what you’d expect:
“…being self aware both emotionally and intelligently.” Knowing your strengths and weakness (and being confident or humble about them accordingly). In other words, “Know where you suck” and also “realize where you’re good too”. In the end “being self-aware like this, both emotionally and intellectually is a very good thing to be; it’s good to be in that state of mind…it’ll have a tremendous positive impact in your life.” Enjoy!
There are plenty of articles on how to build an e-commerce website. The problem is that they speak to web-nerds and not to the business people who want to build on online business.
This article speaks to those not so tech savvy entrepreneurs.
What we want to do:
The goal is to create an e-commerce website that builds a business using all the cheap and free tools available in the market today. One great thing about the nerd driven computer revolution, is the strong sense of community and desire to give opportunity to the masses.
Because of this freely available cheap and/or free technology, it is just so much easier today to start a business than it was just 15-20 years ago.
These are some of the questions this article will answer:
What are the components of an e-commerce site, and how do you best get those components into your web site?
I’ve seen this confusion come up from time to time – is HTML a scripting language?
Short answer: no.
Yes a nerd detail, but nonetheless, this is something that should be made clear.
THE DETAILS:
HTML is actually a markup language and not a scripting language.
Scripting implies decision making capabilities (the code can actually evaluate and take an action based on what it finds) – PHP, PERL, Ruby, Javascript are examples of scripting languages.
Markup languages create structure for a document … they only describe data. For example:
I wrote my first script back in 1996 – some really simple JavaScript that validated HTML forms and presented users with ugly ‘alert’ boxes when errors occurred.
I always wondered why on Windows, ‘alert’ boxes looked so ugly?
… they probably looked good on Macs though.
Since then, I’ve written software for business purposes in perhaps 8-9 languages. Over the years, I’ve come across many ways in which people classify languages:
Object Oriented vs. Procedural vs. Prototype
Scripting vs. Programming
Compiled vs. dynamic
… and many more.
Recently a more practical way of classifying languages has come to my attention – classifying languages by problem-domain or in other words, context.
System Languages
Architectural Languages
Application Languages
I like this list, because it really conveys a sense of practical use for a language. I’ve hammered out the details below:
System Languages
… best used to build operating systems, hardware drivers etc. Fast and gives you low level (close to the core) access to the computer. These languages are used when speed is critical.
These languages include:
C
C++
Assembler
Architectural Languages
… best used to build frameworks that support (make easy) application building. Not as fast (at run-time) as system level languages, but they provide a higher level of abstraction that makes writing software quicker and more productive.
These languages include:
Java
C#
Application Languages
… best used to build the actual business applications like web shopping carts/stores, connecting to databases and creating the screens for users to interact with the database.
These languages include:
PHP
Ruby
Perl
Python
These language all allow for extremely fast development.
Programmers are freed from the low-level details that you have to contend with when working with architectural and system level languages.
The fact that they’re all scripting languages (that don’t need to be compiled,) adds to the ease of use and speed of development.
MY POINT
It makes for an interesting way to look at languages … and our choice of what language(s) to use for a given project.
Databases are programs that are built to store and manage information. You can think of a database as a virtual filing cabinet – with extra bells and whistles.
Types of databases:
There are several types of databases used today. The most common being:
You can think of each type of database as a different way (conceptual and practical) to store and manage information.
Each type of database has its advantages and disadvantages. That said, by far, the most popular database type is the ‘relational database’. That’s why we concentrate on them here.
WHAT ARE ‘RELATIONAL’ DATABASES?
As I hinted at above, each database type has a different concept on how data/information should be stored and organized.
A relational database stores (and organizes) its data/information by creating relationships between different pieces of information (stored in virtual containers) that are … uh, related to each other.
To illustrate the point: if you had a brother, your mother would be the ‘key’ that forms the relationship between you and your brother.
With this analogy in mind, we can say that a relational database stores and tracks data by establishing relationships by using ‘keys’ (in this case, your mother) that are consistent between two pieces of information – you both have the same mother.
Popular relational databases include:
· MySQL (often used with PHP because it’s free)
· Oracle
· Microsoft SQL Server
WHAT ARE VIRTUAL CONTAINERS?
We all know that it’s much easier to store and find stuff/things (in your home) if you put the stuff into boxes and then label the boxes … much better than just leaving all your junk on the floor.
Though naturally a messy bunch, nerds have picked up on that fact, and realized that computer information should also be stored in boxes (virtual containers) that are labeled. In a relational database, we call these ‘boxes’: tables.
In a nutshell: the virtual containers in relational databases are called ‘tables’ and information is stored in tables.
MORE ABOUT TABLES
Database tables are virtual containers designed to hold and organize data. In many ways they look like spreadsheets where database tables have both rows and columns.
The difference between a spreadsheet (like Excel,) and a relational database table, is that the spreadsheet is designed (has built in capability) to manipulate data for the purposes of presentation – creating charts and reports etc.
Where on the flip side, a database table is designed (has built in tools/capability) to organize and maintain information and it can hold much, much more information than a spreadsheet.
So yes, you can store information in a spreadsheet, but it lacks many capabilities (and capacity) that you would find in a database.
We will learn more about the makeup of a table (purpose of the rows and columns) when we actually build one.
THE ‘RELATIONSHIPS’ IN RELATIONAL DATABASES
As I mentioned above, a relational database stores information in tables (the virtual containers) and then creates relationships/connections between the tables (and thus the data that is stored in the tables.)
This system/method of storing information (by creating relationships,) is efficient because of a few reasons; the most important being is that this style of storing information (in tables that are related to each other,) helps to prevent information from being duplicated needlessly.
A FUNDAMENTAL PRINCIPLE OF DATABASE DESIGN
One of the fundamental rules in database theory/design, is that information should not be duplicated:
… if you have multiple copies of the same information floating around, it takes up more disk space and can easily become a nightmare to organize.
By storing information in different tables, and linking that information to each other (that are related,) you avoid duplicating information. This will become clear when we actually build our first database … I know (that for now,) many of you are probably unclear about a few things … have faith, it will come!
The Internet is buzzing these days about the emergence of what people call ‘Web 2.0’. It’s important for web designers to understand what this is, because it affects all web design.
IN A NUTSHELL: Web 2.0 is a combination of factors/elements that leads to a much more social, interactive Web. Here is a short list of some of the key elements that make Web 2.0 possible:
AJAX allows for the rise of the truly ‘rich’ Web user experience: web pages that act like desktop programs … no need to refresh entire pages to see new content on the page.
Auto-syndication (sharing of content) via RSS/XML feeds – and software that allows you to easily create and access these XML feeds.
New ways to mass-communicate over the Web – podcast (mp3) and video.
BLOGS GOT THE WHOLE THING GOING
Blogging tools like WordPress and TextPattern got the whole thing going: most blogs automatically create RSS feeds.
Blogs also make it easier than ever before, for people to write content for the Web. No need for Web design software like FrontPage or Dreamweaver and no need to know HTML.
As such, there has been an explosion of content creation of the Web: people are writing like crazy! The three points to take away from this is:
Blogs make it simple to (essentially) create web pages.
Blogs automatically syndicate/share content via RSS.
Blogs make it easy for readers to interact with blogger’s (the authors,) via a built-in system that allows people to make comments … the social aspect enabled.
WEB 2.0 IS MORE THAN JUST BLOGGING
Another major characteristic of Web 2.0 is the remixing and combining of information from many different sources.
For example:
A Web 2.0 web site may grab many RSS feeds and massage them into a new filtered presentation. The advantage is that users can now access this information from one spot, instead of having to visit many different sites.
CONCLUSION
This (automated) sharing and mixing of content/information (between people and websites,) along with ‘rich’ Web user experience is Web 2.0.