Hello! Welcome to Help Desk Lite. We hope to be the starting point for programmers looking for valuable information on a variety of topics within the world of computers and programming. On the site you will also find links to resources that we found valuable when we were starting out. There is a lot of information out there for people interested in becoming a programmer. Unfortunately that also means there is a lot of not so helpful and confusing information out there. Our goal is to provide easy to digest information for the aspiring programmer. If you have relevant advice, guidance, or support feel free to submit an article that you would like to see added to the site. We hope that we can make the journey a little bit easier than it was for some of us and wish you the best of luck on your entry into the world of programming!
We all have heard of the conversations or discussions about how great a UX product is or rather how poor a UI product of a website is. UX and UI are some of the most conflated and confused terminologies that are used in web and app design. They are more often than not placed together as a single term UI/UX design and is viewed from the surface as describing the same thing.
Brief history of user interface
Back in the 70’s in case you wanted to use a computer then you had to use the command line interface. The graphical interface that is found in most computers today did not exist commercially; users were required to communicate through programming languages which required seemingly infinite lines of codes for them to complete the task.
The first graphical user interfaces started to appear in the 1980s and was developed by computer scientist at Xerox PARC. Through the ground breaking innovation, users are now able to interact with their personal computers by submitting commands visually as well as submitting commands through icons, menus, buttons and check boxes.
The shift in technology meant that more people could use the computer since no coding was required and that was the beginning of computer revolution. Apple computer was the first computer to be released in the market that was using graphical user interface successfully. The prevalence and accessibility of computers meant that the interfaces had to be designed with the user in mind. Incase the users were not able to interact with the computer then there was no way that the computers could sell.
It is not surprising that people have different perspectives in regards to the topic of user User interface and user experience. Graphic design experts have split opinions when it comes to picking the one that is important between User interface and user experience. User experience design is focused on anything that plays a role in solving the problem which either be positive or negative. User interface design is focused on the way the surface of the product looks like.
What is UI design?
UI stands for user interface design and refers to a graphical layout of an application. The user interface consists of texts, images, sliders, buttons, text entry fields and other items that users can interact with including screen layout, interface animations, transitions as well as every single micro-interaction. Any form of visual element, interaction or animation has to be well designed. It is the responsibility of the user interface designer to decide how the application will look like. As a designer you will have to choose the color schemes, button shapes as well as the width of the lines and fonts used to make the texts. User interface designers simply create the look and feel of an application of user interface.
They are often concerned with the aesthetics and it is up to the designer to make interface attractive, themed appropriately and visually stimulating so as to match the personality of the App. The designer needs to make sure that every single visual element serves both aesthetic purposes.
What is UX design
UX stands for use experience and is often used to determine how the users will interact with the application. Is the experience intuitive, smooth, clunky or confusing? It is logical or arbitrary to navigate through the app? Does the app give the user confidence of accomplishing what their tasks or does it look like they are struggling? The experience of the user is determined by how easy or difficult it is to interact with the interface elements and the UI has designed and created. It is important to understand that user experience can be different for different people including users from different countries. This is why large adult dating sites and hookup apps have different versions of their sites and apps for users in the UK and the US than for users in non english speaking countries.
Most people get confused between the difference of UX designers and UI designers. UI designers are usually tasked with deciding how the user interface will look like while UX designers are charged with determining how the user interface will operate. There task basically entail the structure of the interface, and its functionality. Simply put they decide the mechanism of operation of the interface. In case navigation is complicated then a lousy user experience will be very likely.
UX designers also play a role in the creation of wireframe that renders the interface interactions and helps to get the user feedback. It is highly recommended for users to have an understanding of the way users prefer to interact with their applications.
How they interact
User experience and user interface work together in a collaborative process where the user experience enhances operation while user interface creates the appeal. The task of the UX designer is to ensure the work flow of the application while buttons helps in the navigation process and how the interface serves up the information required by the user. The team of UI basically work how the elements of the interface appear on screen.
For instance, let’s say that the design process needs extra buttons on the screen. This basically changes how the buttons will be organized and could require changing the size and shape of the button. The UX designer will determine the best way in which the lay out buttons will appear while the UI designer will design the layout of the design. Constant communication as well as collaboration is required between the UX and UI designer so as to ensure the final look of the interface is clean and operating efficiently and intuitively.
Research very important when it comes to user interface and user experience. It is very important for them to gather as much information as possible in order to assist them in crafting the most appropriate designs that follow a similar approach. Both the UX and UI designers have to carry out thorough research of the sort of applications that needs to be developed. This kind of research is often very involving and interactive and it requires usability sessions where real users will interact with scaled versions of certain functionality as well as some of the visual designs being tested. Simply put, research helps designers build their contributions however, the information UI and UX designers are looking for is might be very different.
Real-time code collaboration has accelerated in recent years. This has affected the way developers work in teams using the same code base. In this article, we will introduce some of the best tools available today.
I bet my lunch money that every developer has moments in their career when they need to share the code or get help when something is wrong. Typical scenarios can include isolated demonstrations, copying and pasting fragments into lists, or entering the code in a repository.
The following tools (in no particular order) are a selection based on searches, documentation searches and some personal testing.
Teletype is a free open source package designed specifically for Atom. For those who love privacy, shared data streams are transmitted over an encrypted point-to-point connection. Servers never see your files or editions, which preserves privacy and minimizes latency between you and your employees.
To install the Teletype package, enter the following line from your terminal with the command apm:
apm install teletype
You can also install Teletype from your package manager by typing “teletype” in the search bar. After installation, perform the following steps:
- Click the antenna icon in the Atom status bar in the lower-right corner of the editor window.
- Authorize Teletype via GitHub.
- Select Teletype in the Atom Package menu and select the shared resources portal.
- Copy the Portal ID, which is located in the lower right corner of the Editor window.
- Share the portal’s secret identification with employees about your preferred method.
- Collaborators access their portal by clicking Join after entering their unique portal ID.
Upon joining their portal, contributors will see a new tab in their workspace that will allow them to view and edit the contents of their active editor. Everyone gets their own cursor and everyone can write at the same time, but only the owner can save. Currently, Teletype only transmits text, so combining it with a voice communication application is a good idea. Ultimately, the developers hope to include this functionality directly in the package, along with a long list of other enhancements.
With this Adobe Code Editor, you can collaborate in real time with an extension. To begin, follow these steps:
- Open the folder containing your project.
- Press the Sync icon in the right toolbar.
- Enter the same room ID.
- Click the sync button again to leave the room, join the voice call, or search for the code.
The brackets do not allow access to the microphone by default. However, you can enable voice calls by starting parentheses from the terminal with the following command:
brackets –args –enable-media-stream
By default, the extension points to an author’s server and no code is sent over another server as long as the version of Bracket is compatible with WebRTC (most do).
Experienced Coda users may not know that there is already a real-time sharing capability. Originally developed by Coding Monkeys, this file share lives since version 1 in Coda. It allows two or more users to share files on a LAN or another user through the computer’s IP address or “shared URL” to connect a remote user with your file. This allows multiple users to work simultaneously in the same file in real time.
First of all, this real-time feature requires users to select the option to share files from the system preferences menu. Once completed:
- Select the file you want to share.
- Click Share and press the Bonjour button at the lowest side of your editor screen.
- Copy the shared URL from the menu > File.
- The distant user will click on the specified link (open with Coda) and his file will automatically open in his application.
If you’re a pro in CodePen, you already know that you have access to “collab mode”, which allows more than one person to release a Pen at a time. When you open the Collab mode, the URL of your pen changes to the address bar of your browser. Copy this provided collaborative URL and shares it with the people you want to work with.
Cloud-based tools, such as CodePen, require developers to move parts or entire parts of the workflow in a host environment. Collab also has a chat feature that allows communication between them during the session. Whenever someone writes, a green border message appears at the bottom of the chat button. Employees can edit and write at the same time, but employees cannot save. Employees can even add external files and change configurations, but not descriptions.
Depending on the plan, you are limited to the number of contributors that can be invited, and only the founder needs a pro subscription; all others can have free accounts or remain anonymous. If you are working with a public pen and want to save the progress, you can click the Fork button to save the exact status at the time of the current progress.
Two heads are always better than one. So don’t be afraid to ask for help. Although programming can often feel like a solitary pursuit. Collaboration is often the best way to learn and improve your skillset. Developing a network of relationships with other coders and programmers allows you access to various strengths and skill sets. Like a fuck buddy who offers hookup benefits as part of the relationship, a coding collaborator can be a friend that shares there knowledge and experience. Relationships are meant to be beneficial and the programming world is different. Being active on forums or working in a co-working space that is tech focused are great ways to reach out and meet other programmers. However you do it. Those relationships with undoubtedly prove very valuable at some point in your coding pursuit.
Coding is a method of communication between machines and humans. Early on, coding was made through physical punch cards. Later it was made into coding languages that you can learn easily. Now we are living in the digital age. Not only there are many programs for you to learn from but also many jobs in programming and coding section. With internet and globalization there has been rise in online courses which can help you a lot if you are looking to learn from privacy of your own home. These websites teach you many different languages be it for computer engineering or web design, etc. There are many paid as well as free websites online. Here are some of the best ones:
Codeacademy is an international website that offers online platforms to over 12 coding languages. It is one of the most popular website there is. The languages include Python, JAVA, JAVA script, Ruby, SQL, and Sass as well as other languages like HTML and CSS. They also offer interactive way of learning. They have a PRO option which allows you to get your own personalized learning in the way you understand best, like quizzes, projects, live advisors, etc. The platform also offers learning command line and Git. As of 2018, 45 million people use codeacademy. In 2017 codeacademy partnered with Amazon for free Alexa skill training. The site got positive reviews from New York Times and TechCrunch. Codeacademy also launched their first iOS app called “Hour of code”. The app includes basic programming and also contents from the website. In 2012 they also launched a code year which is a free project to help people by introducing new courses every week of 2012, more than 450,000 people took the courses. The program is discontinued but the courses are still available online
Khan Academy is another popular online YouTube channel. Khan academy is a nonprofit organization created by American educator and entrepreneur salman khan. In 2018 the channel has 4 million subscribers and just about 1 and a half billion views. The organization puts out short videos of lessons on YouTube. Khan Academy includes languages like JAVA script, HTML, CSS and also basics of computer science. But this isn’t only thing that is available here. The organization also includes website that provides supplementary exercises and materials for educators. The website is written mainly In English but its content is also available in other languages such as Spanish, Portuguese, Hebrew, Hindi, Chinese, German, Bengali, etc. If you don’t have much time then there is an “Hour of code” as a crash course option for you.
edX is massive online computer course provider. It is completely free and nonprofit so you don’t have to worry of being exploited for any ulterior motives. This organization was jointly created by MIT and Harvard University scientist and now it has over 14 million students taking 1,800 courses. In January 2018 edX partnered with Microsoft and general electric to provide subsidized online courses and guaranteed job interviews. edX consists of weekly learning sequences and each sequence is made up of interactive learning process that allows the viewer to practice the concepts from the video. The lessons also include instruction videos similar to those provided in campus, online textbooks, forum for students to post, discuss, review and interact. edX also gives certificates in specified courses like front end web development or data science. They also have open edX in which a software was developed that made its content freely available for other institutions to use, resulting in several other institutions like St. George online university and others to utilize it.
This is yet another free online computer course organization. It was founded by Stanford university professors Andrew Ng and Daphne Koller. It offers courses, specializations and degrees. It not only offers coding but also courses on other subjects as well like humanities, biology, data science, medicine, mathematics, etc. As of now coursera has over 33 million users and 2,400 courses. Coursera not only works with college and universities but also governments. They currently have 149 partners across 29 countries. Its partners include university of London, business school of India, yonsei university of Korea amongst others. The courses vary from four weeks to ten weeks with approximately one to two hours of lectures a week. It offers interactive ways of learning like quizzes, weekly assignments and occasionally final examination. Coursera also offers on demand courses that provides all the information together at once and the user can take their own time to learn and complete the course. In March 2018 coursera launched six online degrees including bachelors and masters qualification.
These are some of the best online schools that offer great courses and can really help you to learn and use those skills in a job.
Learning programming has never been easy. Despite the many ways you can program, we believe that the best way to improve your skills is to contribute to open source projects.
The open source community offers a great opportunity for aspiring programmers to stand out, and by contributing to various projects; developers can improve their skills and get inspiration and support from like-minded people. But the most important thing is that they can show that they can make fantastic experiences that people love.
Non-programmers can also contribute to open source projects. Documentation is necessary for all projects, sometimes poorly written and maintained. Therefore, you can help by writing, updating or even translating the documentation. In addition, your design skills can be useful: after all, each application needs an interface. Finally, you can contribute by managing a community by answering questions and guiding newbies.
This article is for developers who are just starting their careers and want to get involved in the community (and maybe become a programming genius).
What To Keep In Mind Before You Go To Open Source
Okay, you cannot wait to start your first OSS project. Let’s take a look at some tips that can help you choose.
Type of project
After selecting the language in which you want to work, you must select the project type you want. Github projects are divided into folders called Showcases. Here are some examples of shop windows: “Security”, “Virtual Reality”, “Text Editor” and “CSS Preprocessors”. Just pick a topic that interests you.
However, we recommend paying special attention to projects that can be used by a large number of people. So you have the opportunity to test your code in the real world in a large audience. For example, the storefront “Emoji” contains 25 repositories that represent their popularity. Great projects can be found on dating apps and websites as well. Plenty of fish, match, and fuckbook are great places to start. Hook up apps often provide opportunity to practice your skills as they are always looking to optimize their user’s chance of hooking up through their website. Another piece of advice for choosing an OSS project is to start working on the software you already use or the software you want to use. This will motivate one to keep working.
Best Open Source Projects Used In Most Android-Based Applications
License: Apache 2.0
GitHub Stars: 20,370
This open-source Android project can convert the REST API to the Java interface. With Retrofit, you can write a pure Java quality code with almost any RESTful API.
It is worth noting that the main features include dynamically generated requests, error procedures, and the ability to transfer files. In addition, this open-source git library provides a powerful infrastructure for authenticating and interacting with APIs, as well as sending web requests via OkHttp.
Retrofit automatically converts JSON into objects using another open source Android repository called Gson. All library logic is based on annotations that allow the creation of dynamic requests within a server.
Also for the Android-based library, it’s light enough and relatively easy to use.
Easy to use and install
Lack of image loading
License: Apache 2.0
GitHub Stars: 14,600
Uploading images is a fairly common task in the development of Android. The open source repository Android Glide can download and display images from multiple sources. It also takes care of caching and memory usage.
However, to find the balance between quality and memory usage, you need to change the Glide default settings from RGB-555 to ARGB-8888. With this simple step, you increase the image quality and maintain a balanced storage volume.
Low memory consumption
Size in 430 kb
License: Apache 2.0
GitHub stars: 15,500
As you know, it often happens that a seemingly repetitive code is used during the project. In order to keep up with a good programming style, you should avoid the so-called repetitive code. For this purpose, Android open source libraries such as Butter Knife were created. This library uses an InjectView annotation to eliminate repetitive text and shorten its code.
It allows you to write less code
No support from Pojo Injection
License: Apache 2.0
GitHub Stars: 2,700
In addition to Butter Knife, the repetitive code problem could also be solved by Parceler, an open source Android project. GitHub has allowed developers to easily search for tools like this that make code building easy. The Parceler library generates the required container classes and compiles the data automatically. In this way, the library allows reducing the number of repetitive steps necessary to obtain the maximum performance of the packages.
Eliminate the manual generation of the parcelable code
Good basis for counting methods
RealmList cannot be controlled by default
Open source projects bring many benefits to those who attend and this experience is great for their resume. As you join a community of like-minded people and refine your skills, as an aspiring developer, you can go one step further.
We know you know what coding is, but you might be having a harder time explaining to other people the journey that you are embarking on. Here is a great video that explains just what programming is.