< go > Learn about iOS development tips: How to get from rookie to expert

Source: Internet
Author: User

This article transferred from:http://www.cnblogs.com/YouXianMing/p/3631577.html Article original address:http://mobile.tutsplus.com/tutorials/iphone/ios-quick-tip-from-novice-to-expert/IOS Quick tip:from Novice to Expert

Bart Jacobs on Jul 29th with 5 comments

Even though it ' s possible to learn the essentials of IOS development in a weekend, it'll take much longer to Ma Ster the craft. The question then was how does transition from a novice to an expert? In this quick tip, I'll provide you with a breadcrumb trail, which may help you on your-becoming a great IOS develo Per.

While it is possible to learn iOS development on a comfortable weekend, it can take a long time to master it completely. The question is, how can you turn from a rookie to a veteran? In the short description below, I'll give you some advice to help you get on the road and become a master of iOS developers.

1. Practice, practice, practice

there is no shortcuts.  this is something that I ' d like to emphasize before continuing, because it's important to get rid of any illusions That might is stuck in your head. You don't become a skilled developer if you have program on Sunday afternoons between 4PM and 5pm...if the sun isn ' t shining And there ' s nothing on television. Don ' t get me wrong, it's May is fun-to-do and it won ' t bring you much closer to your goal of becoming an expert develope R. Apart from a few exceptions, the most people need practice-and lots of it. If you aren ' t prepared-put in the hours, then it's better to revisit your goals and ambitions. Become great at Something your love and the time spent practicing'll be is its own reward.

There's no shortcut, boy! I have to say it before I go on, because it is important to get rid of any quick ideas and face the harsh realities. If you just want to do it between 4 and 5 in the afternoon of Sunday, you can't be a master. Just because you can't go out to play or not see the < life Big Bang >. Don't play with me, maybe you think you've spent one hours doing it, but that's never going to get you close to the point where you want to be a master. Aside from some exceptions, most people need to practice. If you don't want to take the time to do it, then you don't want to be a master and continue to be a hard-pressed farmer. It takes time and energy to do what you like to do is the only way to become a master.

2. Learn from Others

One of the best strategies to improve your skills and to adopt best practices are to learn from other people ' s code. This isn't only means Browsingstack Overflow, but also, and more importantly, libraries or code snippets that is open SOURC Ed by fellow developers.

One of the best strategies to improve your ability and the most efficient way to do exercises is to learn the code of others. It's not just about you going to stack Overflow (the stack overflow site is a pretty good site). It is also important to learn about the Open source libraries of a few great gods and some of their code snippets.

Whenever you dive into a library, such as afnetworking or magical Record, it's key to not being overwhelmed by the code you Read. Chances is that you don ' t understand every line of code in these libraries, but that's not really the point. The point was to look at the source code from a higher level and learn as much as possible, such as naming conventions, BES t practices, design patterns, etc.

Once you go deep into a library, such as afnetworking or magical Record, don't be scared by the sheer amount of code, you can't know every single line of code in these libraries is a private place, but that's not the point of learning. What really needs to be learned is to learn as much as possible from a higher point of view, such as some commonly used methods of use, design excellence, design patterns, and so forth.

In addition to learning from other people's code, it's a good learning experience to create your own libraries. Some time ago, I was developing a application that uses Core data as the data layer. Instead of using magical record, I decided to create my own library by exploring magical record and recreating the pieces of functionality that I needed. Not only do this result in a lean, agile library, it also taught me a lot about the inner workings of magical Record.

In addition to learning other people's code, another good learning experience is to create your own library. Long ago, when I was developing an application, that ... Using core data as the data layer of the application, rather than using the magical Record, I decided to create my own library, seek inspiration from the magical record and extract the features I wanted, and finally, I not only created a thin, flexible library, but I also learned a lot of core design methods in the magical record.

3. Don ' t Copy and Paste

This brings me-another key aspect of learning the right Way:don ' t mindlessly copy and paste code. We all use code snippets this we find on places like Stack Overflow or Apple's Developer Forums, but it's important to not mindlessly copy and paste the code that you find on the Web. By copying code This you find, you don ' t learn a thing. The greater danger is so you don't know what you've just added to your code base. This might the result in unexpected behavior and it would make it very difficult to debug your code later.

My other good learning experience is: Do not copy and paste other people's code. Maybe we'll find some code snippets from Stack Overflow or Apple's Developer Forums, But please do not feel free to download the code from the Internet and then no brain to copy and paste. You use your code without your forehead, you don't understand anything, and, a big risk is that you don't even know what the hell you're adding to your project, this might be a wonderful problem, and then, You have to face the pain of the debug process, and estimate the ^_^.

It May is tempting from time to time to quickly with a code snippet that seemingly solves the problem that is working On, but I strongly urge against this practice. Read the code, understand what is adding into the code base, and, possibly, customize the solution to your needs.

It's tempting to have a quick, brain-free use of other people's Code snippets and seemingly solve your current problems. But I strongly oppose this approach, study the code, at least you need to know what to add to your project, The best thing is to modify someone else's code and customize the solution you need.

It goes without saying that this doesn ' t apply to libraries or frameworks that is actively maintained. If you had to go through magical the Record before you are able to use it in your project ... I ' m sure you understand the difference. Use your common sense.

That's not to say you abandon the libraries and frameworks that are being updated and maintained (first-party provided). [A sentence can not be translated, English level dishes, not clear grammatical structure of the-_-!!!] ... I can be sure that you will experience different points and how to make the whole.

4. Patterns

Cocoa and Objective-c is in many ways very different from other programming languages and environments. This means that they has their own patterns and best practices. I ' m sure that you ' re already familiar with a few common patterns, such as delegation and notifications. However, there is many more patterns so can help you during your development, such as the Singleton, Observer, and Comm and patterns. The Cocoa Fundamentals Guide gives your a nice overview of the most common patterns in Cocoa.

Cocoa and Objective-c, in some places, differ greatly from other programming languages, which means that they all have their own patterns and a programming style that works best for them. I believe you have some knowledge of common design patterns such as proxies and notification modes. However, There are other (design) patterns that can help you develop, such as Singleton. Observer. and the conductor mode. This book Cocoa Fundamentals Guide gives you a more comprehensive look at some of the design patterns used in Cocoa.

5. Know Your Tools

Becoming a great developer isn ' t only about understanding the language and the frameworks. It is a just as much about working efficiently with the tools, the use of day in and day out. For IOS development, this means Xcode and possibly other tools, such as Ponydebugger andcharles.

Do you understand the language features and the various frameworks you can become a master? You have to figure out how to use the tools very efficiently every day. For developing iOS, this means using Xcode and other tools such as Ponydebugger and Charles.

If you ' d like to learn a few extra tricks, you could be interested in a previous quick tip that I wrote about this topic.

Don't you want to learn some extra programming skills? In that case, you might be interested in some of the quick tips I've written before.

6. Stay up to Date

Even if you can ' t attend Apple ' s yearly developer conference, WWDC, it's a good idea to browse the numerous session video s and watch the ones that spark your interest. The presentations is usually given by the engineers, and the technologies covered in the session, which gives Detailed information and instructions about the use them. It is also a great a-quickly get up-to-speed with those technologies.

You can't go to Apple's annual developer conference? Don't worry, go and see a lot of conference videos, and that will broaden your horizons. You can get a lot of benefits, those are the ^_^ of the great engineers in various fields, you can get a lot of the latest information from the inside, and help you how to use them. It's a skill to catch up with the ever-changing technology.

There is many excellent developers that regularly write about their craft, such as Matt Gemmell, Aaron hillegass, and Mik E Ash. You can find a more extensive list in a previous post I ' ve written for mobiletuts+.

Some great developers often write about their forks, such as Matt Gemmel.aaron Hillegass and Mike Ash, and recently I've shared that detailed list of perverted characters on the mobiletuts+ website to cheer it up.

Bonus:learn other Languages

I had noticed that my overall understanding of software development had improved significantly by learning new languages or working with new frameworks. The advantage of this approach is so you don ' t limit your view of what's possible to the language that's the most fam Iliar with.

I have noticed that my comprehensive ability to develop software has been significantly improved as I go to learn new languages and use new frameworks. It's not as easy as it is, the key is that you can't limit your vision, and don't put yourself in a language of development that you're most familiar with.

I recently dipped my toes in ember.js and learned so the creators, Yehuda Katz and Tom Dale took inspiration from Cocoa. The implementation of the MVC (Model-view-controller) pattern of ember.js is a bit unconventional for a JavaScript Framew Ork, but it's not so surprising if you were familiar with Cocoa.

I recently got into Ember.js, and his creator Yehuda Katz and Tom Dale were inspired by cocoa development. The implementation of this MVC design is very exotic (unconventional) for the Javescript framework, but if you're familiar with cocoa, That's no big deal.

There is no "best" language to write software in as they all has their pros and cons. The nice thing, however, was that they was all a little (or a lot) different and it's those differences that makes learning New languages interesting and eye opening. Ruby, for example, is a real eye opener for me in terms of writing DRY (Don ' t Repeat yourself), readable, and clean code.

There is no best language for writing software, and every language has its own areas of expertise. Good language, that is, they are only a little bit different, but this point is different, let it learn super band sense and broaden the field of vision. For example, Ruby, write dry (don't repeat yourself), I was very impressed with the readability and freshness of the code.

Conclusion

If you don ' t want to put in the hours to become a better programmer and then you could want to reconsider why do you wanted to BEC ome a programmer in the first place. However, if you get excited about a new library or tool so can help you in your development and then you probably won ' t hav e a problem improving your skills over time. You really has to love the what does to become good on it and I think this is especially true for programming. No matter what people tell you, you won ' t become a expert developer overnight, but I promise you that your skills would IM Prove if you keep learning and beating on your craft.

If you don't want to spend time with the blade, you'll know DotA all day long. DNF. League of Legends, you have to rethink your ability to be a great developer? If a new library or tool can help you develop it, you'll be happy to use it to learn it, and you'll be able to ascend. You really need to love what you want to do, Only in this way can you really improve yourself. No matter what others tell you, you can not become an old hand on one night, but, I know, as long as you can persist, your ability will be able to be improved!

< go > Learn about iOS development tips: How to get from rookie to expert

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.