Monday 23 February 2015

5 Tips to Learn Programming Faster

shutterstock_Morrowind
The tech sector has long been considered one of the best for job seekers, and two recent reportssuggest that demand for tech careers will only continue to grow. This is particularly good news for aspiring software developerscomputer programmers, and Web developers, who all make the Top 10 list of best Technology Jobs of 2015, according to U.S. News and World Report.
There is one downside to this, however: Learning to program is tough work. Whether you’re pursuing a degree in computer science, a student at a coding boot camp, or attempting to teach yourself how to code on nights and weekends, you’re going to need patience, grit, perseverance, and lots of time. Here are five tips to speed up the process so that you can learn programming faster.

1.  Learn by Coding, Not by Reading

Children don’t learn how to tie their shoes by reading about it; they have to actually do it, over and over, until it’s firmly entrenched in their brains. Coding works in much the same way. You might fly through a chapter of reading and have no problem understanding a topic like “for loops,” but if you don’t play with the code right there and then, you’ll never remember the syntax when you go to actually implement it for the first time. The same applies to sample code: Thanks to the additions of comments and instructions, it’s easy to read and always seems fairly intuitive, but to fully grasp the concepts, you need to actually tinker around and write (or at least run) the code yourself. Therefore, get your hands dirty whenever you can and embrace the mantra, “code as you go.”
Hint: If you’re just starting out, build a personal project in tandem with your reading, so you’ll always have a tangible canvas to try out what you’re learning.

2. Grasp the Fundamentals for Long-Term Benefits

As elementary as they may appear at first, programming fundamentals always need to come first: The better you understand them, the easier it is to learn more advanced concepts. At Coding Dojo, the students who rush through the beginning of our software boot camp (where we focus on Web development fundamentals) are often the first to get stuck as we transition into more advanced material, such as back-end programming. So before you ditch your first Computer Science 101 class or skim Chapter 1 of an online tutorial, keep in mind that you’re overlooking the most important step in your learning. As eager as you might be to reach the end, you must be patient and respect the process.

3. Code by Hand to Sharpen Proficiency

Computer monitors become thinner, hard drives lighter, and programming languages more powerful, but coding by hand still remains one of the most effective methods to learn how to program. Whether it’s on a whiteboard or in a notebook, coding by hand forces you to be more cautious and precise, because you can’t run hand-written code midway through to check if your work is correct. While this restriction will slow you down a bit at first, it will mold you into a more fundamentally sound developer and help you tremendously in college exams. So start early and get used to this old-school practice.
Hint: Coding by hand will also help you land a job! When it comes to technical interviews—a critical component of the job interview process—you’ll have to code by hand, because it’s universally viewed as the ultimate test for a programmer’s proficiency. Ace that, and you have a serious edge over other job seekers.

4. Seek Out Help and Additional Resources

Too often, aspiring programmers feel that asking for help is an admission of failure, or a sign that they’re just not “cut out” for programming. In truth, every programmer has needed help along the way. So when you’re stuck on something, don’t be shy to reach out to classmates, mentors, or even established developers. If there’s one thing passionate individuals enjoy, it’s sharing their knowledge with others.
Likewise, if you’re struggling to understand a concept in a textbook, class lecture, or on Codeacademy, try out a different resource. Everyone learns in different ways, and just because one source doesn’t make sense doesn’t mean there’s something wrong with you. It means that you’re not clicking with the delivery of the material. There are countless online resources to help you learn computer programming, and there’s always a Reddit post, YouTube tutorial, or blog explanation that will make the material-at-hand crystal clear. We are especially fond of Stack Overflow and Reddit’s “learn programming” subreddit .
Hint: At Coding Dojo, we suggest the 20-minute rule: Take at least 20 minutes to figure out something on your own before seeking help. Not only will this force you to think in new ways and become a better programmer, but there’s a good chance the answer is right in front of you.

5. Take Breaks When Debugging

Debugging—the act of hunting down and fixing that errant code that’s causing your website or application grief—is painfully tedious work. It’s easy to go down the rabbit hole for hours, becoming more frustrated as you go, and thus less productive in your work. To avoid this, take regular breaks. Stepping away for a while—whether it’s 30 minutes or three hours—will allow you to clear your head and come back with a fresh perspective.
Hint: Give your eyes a break, ditch the computer screen and go outside, read a book, eat food or take a nap. This will not only keep you sane, but it will restore the focus you need to successfully fix the bug.

Conclusion: Keep Calm and Code On

In addition to these tips, there’s one other thing you can do to learn programming faster: remain confident. Be patient with your progress and accept the fact that you are going to fail repeatedly—it’s the only way to learn. If doubts ever cloud your mind, remember that every programmer has walked this path before, none of them any more “destined” to become a developer than you.

http://www.techgig.com/readnews.php


Sunday 22 February 2015

10 Best Javascript Frameworks For Developers

JavaScript framework is the one of the great feature of the JavaScript programming language. It’s used to create interactive websites and web applications.

JavaScript is basically an object-oriented scripting language helps a mass of ways by which to create web applications and interactive websites. Javascript framework is also known as JavaScript libraries. JavaScript Framework raise designs the work of web development very easier and provide many features and functions, thus helping developers to raise the website development tasks. Javascript frameworks are considered as a software development application which helps web developers in quickly web designing and developing dynamic websites. With the use of these javascript frameworks, you are able to decrease the time of the process, can decrease charges for their clients by using frameworks. I hope you will accept that JavaScript frameworks 2015 are the most advanced future of web design and development world.

Best Javascript Frameworks For Developers

In this post, we collected 10 best JavaScript Frameworks for developers that aim to simplify front end application development. I hope you will enjoy it!

TouchStone.js

TouchStone.js - JavaScript framework
TouchstoneJS is a UI framework powered by React.js for developing hybrid mobile apps. It includes form components, navigation, transitions, native touch behaviors, and much more, with more features on the way.

Meteor

Meteor - frameworks
Meteor is a complete platform for building web and mobile apps in pure JavaScript.

Knockout

Knockout - frameworks
This framework is the new launch and known for its coolest features. Initially this framework is basically known as the only JavaScript library that allows the developers to create web applications.

Enyo.js

Enyo.js - framework
Enyo.js is basically used for designed responsive web application and it enables the developers to create webpage that is fluid in nature, fast and perform perfectly on all types of resolutions.

Reactive-coffee

Reactive-coffee - framework
A lightweight CoffeeScript library/DSL for reactive programming and for declaratively building scalable web UIs.

ExtJS

ExtJS - JavaScript
Sencha is excited to announce the release of Ext JS 5, the newest version of our flagship application development framework.

Aurajs

Aurajs - JavaScript
Aura is a framework-agnostic, extensible architecture for decoupled and reusable components.

Cappuccino

Cappuccino - JavaScript frameworks
This framework varies dramatically from the others in that a developers doesn’t need to understand or work with any of the front end trifecta — HTML, CSS or the DOM. All you need to master is the framework!

canjs

canjs - JavaScript frameworks
CanJS is a JavaScript library that makes developing complex applications simple and fast. Easy-to-learn, small, and unassuming of your application structure, but with modern features like custom tags and 2-way binding. Creating apps is easy and maintainable.

Feathersjs

Feathersjs - JavaScript framework
Feathers is a library that extends Express – one of the most popular web frameworks for NodeJS – with the ability to easily create shared RESTful web services and real-time APIs using SocketIO and other websocket libraries.

Ionic

Ionic - JavaScript framework
The beautiful, open source front-end SDK for developing hybrid mobile apps with HTML5.


Source From  :
http://www.techgig.com/

Monday 16 February 2015

What Development & Test Managers do in Agile Organizations

Is there room for functional managers, such as development and test managers, in agile organizations? Maybe. It depends on whether they take the role of an agile manager.
If you have organized as a feature teams-based organization, the functional managers (development, test, analysis, whatever) can take these responsibilities:
  • Develop trusting relationships with the people on the project team, and in their function.
  • Provide coaching and mentoring opportunities for people.
  • Provide communities of practice for the people.
  • Remove obstacles for the people and team.
  • Start and nurture the hiring effort whenever you need to hire new people.
  • Help people with career development.
  • Provide feedback to people, and help people learn how to provide feedback (meta-feedback).
  • Provide coaching and meta-coaching when people want it.
  • Help the organization understand its capacity and make decisions about the project portfolio.
  • Help influence the rest of the organization with the agile culture.
Functional managers are champions for the team, and shepherds for the process. They are servant leaders.
Here’s what functional managers do not do:
  • Have status conversations. If the team is agile, the team understands its status. If you need help seeing their board, that’s a problem the team needs to solve. If they need help seeing their status, they need to change their board or their process for updating each other.
  • Move people on or off teams, once you or the team establishes itself.
  • Ask people to do something the team has not committed to, or that the product owner has not added to the kanban board. That’s right. “Your” team doesn’t work for you; the team works for the product owner.
  • Micromanage any part of the project work. Or, manage any part of the project work.
What does this mean? It means that the team members are leaders. Agile pushes responsibility into the teams, and away from traditional management. Agile requires leadership at all levels.
Agile challenges managers to recreate their jobs. An agile transformation requires managers work in an agile way, and work differently than before.


Source From :
http://www.techgig.com/

11 Features any database, SQL or NoSQL, should have

  1. Offering text standardization function to help with (1) data cleaning, (2) reducing volume of text information, (3) merging data from different sources or having different character sets
  2. Ability to categorize information (text in particular, and tagged data more generally), using built-in or ad hoc taxonomies (with a customized number of categories and subcategories), together with clustering algorithms. A data record can be assigned to multiple categories.
  3. Ability to efficiently store images, books, records with high variance in length, possibly though an auxiliary file management system and data compression algorithms, accessible from the database.
  4. Ability to process data remotely on your local machine, or externally, especially computer-intensive computations performed on a small number of records. Also, optimizing use of cache systems for faster retrieval.
  5. Offer SQL to NoSQL translation and SQL code beautifier.
  6. Offer great visuals (integration with Tableau?) and useful, efficient dashboards (integration with Birt?)
  7. API and Web/browser access: database calls can be made with HTTPS requests, with parameters (argument and value) embedded in the query string attached to the URL. Also, allow recovery of extracted / processed data on a server, via HTTPS calls, automatically. This is a solution to allow for machine-to-machine communications.
  8. DBA tools available to sophisticated users, such as fine-tuning query optimization algorithms, allowing hash joins, switching from row to column database when needed (to optimize data retrieval in specific cases).
  9. Real time transaction processing and built in functions such as computations of "time elapsed since last 5 transactions" at various levels of aggregation.
  10. Ability to automatically erase old records and keep only historical summaries (aggregates) for data older than (say) 12 months.
  11. Security (TBD)

Note that some database systems are very different from traditional DB architecture. For instance, I created a web app to find keywords related to keywords specified by a user. This system (it's more like a student project than a real app, thoughyou can test it here) has the following features:



  • It's based on a file management system (no actual database)
  • It is a table with several million entries, each entry being a keyword and a related keyword, plus metrics that measure the quality of the match (how strong the relationship between the two keywords is), as well as frequencies attached to these two keywords, and when they are jointly found. The function to measure the quality of the match can be customized by the user.
  • The table is split into 27 x 27 small text files. For instance, the file cu_keywords.txt contains all enties for keywords starting with letter cu (it's a bit more complicated than that, but this shows you how I replicated the indexing capabilities of modern databases).
  • It's running on a shared server, at it peaks hundreds of users were using it and the time to get an answer (retrive keyword related data) for each query was less than 0.5 second - most of that time spent on transferring data over the Internet, with very little time used to extract the data on the server.
  • It offers API and web access (and indeed, no other types of access)



Source From :


http://www.techgig.com/readnews.php?category=Technology%2F+Skill+News&tgnews_link=http%3A%2F%2Ffeeds.dzone.com%2F~r%2Fdzone%2Ffrontpage%2F~3%2F3jQLKZl3v9o%2F11_features_any_database_sql_or_nosql_should_have.html&tg_type=rss&tgnews_id=53630

Sunday 15 February 2015

10 Characteristics Of A Bad Software Engineer

1) The StackOverflow bot: This person ran into an error, did a quick Google search, and applied the first solution they found. The problem here is not that of copying from Stackoverflow. I think there are more solutions on Stackoverflow than any reference guide or manual. Don’t get me wrong, it’s a wonderful resource, if not the best. The problem is the robotic application of it without understanding the consequences. The problem is the application of it without fully understanding the context of it and whether it really applies to the current problem at hand. More often than not, I have seen people believe more of what they see on online forums than the code/system in front of them.

2) The I-am-not-a-tester: I don’t need to test the code, that is the job of the testers. I don’t think that even in this age of mature Agile methodologies, this attitude has waned. There is still an inertia against testing their code. Part of it comes from lacking the interest to set up a testing environment and partly from lack of coherent knowledge of testing. (Is it also partly due to an unspoken stigma against testers in the developer community.)

3) The I-hate-documentation: Some people believe that code documentation must be poetic and hence they lack the skill to do it, ergo not their job. In my opinion, these are the #1 foes of sustainable software. Good software is not software that provides a million cool features. Good software is one that has a few good features that are used consistently by many people and read/updated/modified by a thousand. This brand of developers who believes less in technical communication and precise and detailed documentation is the greatest weed to a company’s success.

4) The ugly: My code works, but:

-I have variables named x, flag, str, arr, etc.
-Most of what I write is in one giant method.
-There is no indentation.
-No consistent coding convention or style.
-Global variables spewed all over the place, etc.

This is the most annoying thing for me personally. It’s not the issue that the code is bad. It could potentially be the greatest piece of code written. But if a diamond necklace is buried in the debris of the Titanic, nobody will find it, and nobody will want to clean it, wear it, use it.

5) The short-term investor: He codes. He deploys. He moves on. No attempt to learn the problem. No interest in the domain. Just give this guy a piece of code, he will slog on it overnight and hand it over. You got a fix/working software. Nothing more achieved from it. Sometimes, it’s important that you have certain selfishness in the developer, one who not only cares about the deadline, but also cares about what he/she got to learn from it.

6) The protester: “I didn’t do this”. “This looks bad”. “Not my problem”. “This isn’t related really to my fix, but someone way over there made a mistake”. “I hate this (loop this sentence 10 times a day)”, “I can’t fix this, get the person who made this code to fix it”.
The person who coded that mistake has moved on, when will you?

7) The dictator: My way or the highway is their motto. It’s their “ideas” vs “your ideas”, not “project ideas”. It’s their solution vs your solution. I bet there will be an argument for sure. Somehow they will keep coming back to a part of code that you implemented. It somehow discomforts them even if it works, tests, and looks perfectly fine. This person is a big bottleneck to productivity and will be the first person to crumble under pressure and start pointing fingers. This person is not good for the team, however experienced/good a developer he may be.

8) The overcautious: The Java developer who just froze when he learned that he would have to write a Python script. The developer who panicked on learning that something in the registry needs changing. The developer who cringes at having to input things in the database. These people will do anything to avoid getting out of their comfort zone. They have weird superstitions related to having to touch certain parts of the system. I have learned, from personal experience, that this phenomenon is common with new developers. Good developers show a tendency to slowly/swiftly move out of their comfort zone in exploration.

9) The careless: Forgets to take a backup, snapshots, has multiple working directories of code, leaves system out, prints in production code, etc. Again, this is a newbie tendency and gets better with more professional exposure.

10) The lazy pseudo-hacker: They pride themselves at being able to trick the system into working. They find magical solutions to seemingly complex problems. My experience says that 9 out of 10 times, it’s just a facade. The hack is bad and will crash sooner or later and will cost much more than having to deal with it, with extra time right now.




Source From :

http://www.techgig.com/tech-news/editors-pick/10-Characteristics-Of-A-Bad-Software-Engineer-29087?mailer_id=2172&utm_source=Mailer&utm_medium=TG_batch&utm_campaign=digest_news_2015-02-13&email=renuka25591@gmail.com&activity_name=Mjg3Mzk=&template_type=3&dt=&auto_login=cmVudWthMjU1OTFAZ21haWwuY29tQCMkQCMkNzg4ODg4QCMkQCMkMTM5MDc2NjQwMw==&src_type=autoLogin

Thursday 12 February 2015

12 Must Have HTML5 Text Editors

Today, everything around us is evolving very fast and we always need to stay up-to-date + learn new stuff to keep being a part of them. If we take the work-life of a designer/developer as a base, there are many new tools, software and techniques appearing each day. Amongst them HTML5 Text Editors have their own place amongst developers, such editors provide comfortable development environment to code better and faster, few of them are premium and some of them come with premium like features without any cost.
HTML5 text editors allow you to edit and develop various web applications and websites with less or no endeavors, these editors come with myriad of features and functionalities that make development task easy for developers.
For this roundup we have compiled a list of 12 Best HTML5 Text Editors for Developers, if you are aware of any other useful editor, please let us know by posting a comment below. Enjoy !!

1. Squire

squire-textarea
Squire is an HTML5 rich text editor, which provides powerful cross-browser normalisation, whilst being supremely lightweight and flexible. It is built for the present and the future, and as such does not support truly ancient browsers. It should work fine back to around Opera 10, Firefox 3.5, Safari 4, Chrome 9 and IE8.

2. WYSIhtml5

wysihtml5_full
wysihtml5 is an open source rich text editor based on HTML5 technology and the progressive-enhancement approach. It uses a sophisticated security concept and aims to generate fully valid HTML5 markup by preventing unmaintainable tag soups and inline styles.

3. Popline

popline
Popline is a HTML5 Rich-Text-Editor toolbar. Popline is inspired from popclip. Compared to traditional RTE, popline will float around the selected text. Popline also support View Mode, you can send a twitter, a facebook message, pin an image to pinterst, search with google in View Mode.
Popline provides commonly used editing features out-of-the-box. It’s easy to extend and easy to customize. You can easily customize the theme as well. It has been tested on Chrome 27.0, Safari 6.0.4, Firefox 21.0.

4. Rendera

Rendera-online-html5-editor
Rendera is an online HTML5 editor which renders a realtime preview of your current work also transform your current work into CSS, Rendera supports HAML and SASS. Rendera makes learning HTML5 and CSS3 easy and it is built with CoffeeScript and Sinatra.

5. Mercury

mercury-html5-editor
Mercury is a full featured HTML5 editor, built on the top of the HTML5 Content Editable features, it natively supports all HTML5 elements syntax and JavaScript APIs. It supports full HTML, simple, markdown, snippet and image regions. It supports previewing the edited content and inserting links, images, videos or tables. File uploads can be accomplished with drag ‘n’ drop.

6. Aloha Editor

aloha-html5-editor
Aloha Editor is a rich text editor developed in JavaScript and is a browser based framework. Aloha can be embedded within a content management system (CMS) and other frameworks used for blogs and web development in general. Aloha Editor is designed to make editing process faster. Aloha makes the work 25% faster by reducing the few time consuming steps such as typing and formatting. Aloha Editor is ready to use when website is loaded, even if users need 20 or 100 inputs areas Aloha Editor only loaded once.

7. BlueGriffon

blue-griffon-html5-editor
BlueGriffon is a new WYSIWYG content editor for the World Wide Web. Powered by Gecko, the rendering engine of Firefox, it’s a modern and robust solution to edit Web pages in conformance to the latest Web Standards. BlueGriffon is an intuitive application that provides Web authors (beginners or more advanced) with a simple User Interface allowing creating attractive Web sites without requiring extensive technical knowledge about Web Standards.

8. Bootstrap WYSIWYG

bootstrap wysiwyg
Tiny bootstrap-compatible WISWYG rich text editor, based on browser execCommand, built originally for MindMup, it automatically binds standard hotkeys for common operations on mac and windows, drag and drop files to insert images, support image upload, supports mobile devices and requires modern browser.

9. Raptor

raptor
Raptor EditorTM is an Open Source javascript wysiwyg html editor designed to be user-friendly and easy to integrate and customize. Raptor is designed for inline editing and is ideal for complex multi-block layouts. Raptor utilizes the latest technologies including HTML5 ContentEditable and jQuery features comprehensive built-in unit tests and a modular, extensible codebase and plugin API.

10. Canvas

Canvas Text Editor
A simple text editor using html5 canvas that is being written as a result of set of tutorials on text editor inner workings.

11. Qute

qute
Qute is a text editor with Markdown and TeX support. Qute offers per paragraph preview, i.e., users can switch between editing the source and viewing a rich text rendering with typeset formulas for each paragraph separately. Other features are a minimalist interface, several themes and a fullscreen mode for distraction-free writing.

12. Line Control

line control editor
LineControl allows you to add a beautiful, responsive and fast online Text Editor to your web application/site. LineControl is designed to work with Twitter Bootstrap and as a Jquery Plugin. To add the plugin to your project, just include the JS and CSS files to your HTML template

Resource :
http://www.techgig.com/