TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Ask HN: How to convert from amateur web app developer to professional?

5 pointsby infocaptorover 14 years ago
This is more of a practical question on web app development and deployment process.<p>Here is some background information.<p>I use PHP for server side scripting, javascript for client side. I use Netbeans and notepad++.<p>I user Firefox and firebug for debugging and testing.<p>The process I use is very amateurish, I code something in netbeans, something in notepad++ and since there is nothing to compile, I just refresh the firefox browser and test it. This is convenient and faster compared to the Java development enviornment where you would have to atleast compile and deploy the jar files before you could run them.<p>I have been thinking of putting a formal process in my development and find it hard putting it together. There are so many things to do before you can deploy your final web app. I keep hearing jslint, compression, unit testing (selenium), Ant, YUI compressor etc but I am now looking for some steps that I can take to make me more organized.<p>For e.g I use netbeans but don't use any projects within it. I directly update the files. I don't use any source control but use my Iomega backup that saves each save into a different version and at the end of the day I backup the dev directory to my Amazon s3 account. For me development environment is just a DEV directory, TEST is my intermediate stage and PROD is the final directory that gets pushed out to the server. But all these directories are in the same apache home. I have few php scripts that just copies the needed files into the production directory. Thats about it for my development approach.<p>I know I am missing the following - Regression testing (manual or automated ??) - automated testing (selenium ??) - automated deployment (ANT ??) - source control (svn ??) - quality control (jslint ??)<p>Can someone explain what are the missing steps and how to go about filling those steps in order to have more professional approach. I am looking for tools with example tutorials in streamlining the whole development to deployment stage.<p>For me just getting a hang of database, server side and client side development all in synchronization was itself a huge accomplishment. And now I feel there is lot missing before you can produce quality web application.<p>For e.g I see lot of mention about using automated testing but how to put in use with respect to javascript and php. How to use ANT for the deployment etc.<p>Is this all too much for a single or two person development team? Is there a way to automate all the above so that I just keep coding in netbeans and then run a batch file that is configured once and run it everytime to produce the code in the production directory?<p>Lot of these information is scattered on the web and here, if someone can guide I would be happy to consolidate here.<p>Thank you for your patience :)

3 comments

irishmanirlover 14 years ago
There are a lot of small, detailed things you probably need to know to become a "rounded" development professional and they are only really learned "in the trenches" so to speak.<p>Don't overly stress the "process" you are using, if you ask 10 people this question you will probably get 10 different answers, the best process is one that is repeatable and you feel works for you. The process can also change depending on the type of project you are working on, team size and location, tools being used....don't be afraid to try different things out &#38; see what fits.<p>Down to brass tact's, unit testing I find to be most important when it comes to tests, write the test cases first, then write the features they are to test.<p>Learn git and setup a repo for every project you develop - even personal side projects. Use github.<p>Use a good project management, task management tool like pivotaltracker.com<p>Use to use frameworks e.g. zend and other MVC frameworks correctly, use industry conventions and existing libs, you do not need to reinvent the wheel for everything you need to do.<p>Learn search and sorting algorithms for a start, then start of popular design patterns - only way to really understand these is to use them.<p>Finally I would strongly recommend you try and get a junior development job or internship with a good dev shop, this was by far the best thing I did when I was learning how to program for a living. Nothing else will match it in terms of learning &#38; giving you confidence.<p>Hope this helps in some way.
zepolenover 14 years ago
Hint, just because something is used in the enterprise doesn't mean it's better.<p>That said, source control is a must, start there.
评论 #2232149 未加载
eengstromover 14 years ago
I think I understand what you're asking for. Some things you need to learn through experience and whether you can afford to spend any money on utilities, but if you're comfortable working in English check out url: <a href="http://github.com/plans" rel="nofollow">http://github.com/plans</a><p>If you read/write/speak a non-English language or character set you may want to try and find similar tools in your native language.<p>Generally speaking a development process can be exactly as you describe, but what you want to achieve in order to be professional varies widely. I had a point of sale vendor working with a customer (I was fixing their performance problems) and the developer was "source code controlling" with copy and paste on their personal work station. If I paid that person money to MAKE something, I would have had them shot. Except they are in Canada and shooting people is probably frowned upon.<p>So here is my advice:<p>1. Look at how you're working right now, strip out all but the essential steps that you can write on a piece of paper<p>2. Grade the list with how much time you spend each week on each step in the process<p>3. Keep working on that list for a few days or a week even, logging the time you spend - note also if you lose progress or work due to error, or how many times you do something where an automatic solution may help<p>4. Use the list above to determine, based on where you can probably save time with utilities and tools, or come back to ask HN more specific questions<p>For a one or two person shops, I'd be storing my source code online at github or similar source code repository. As for what you need to do for yourself, start abstracting what you're writing in script as an "architecture". Try keeping a high level document describing the workflow you're automating and what the purpose is.<p>From there, break down into component parts, how you think about it and how others may need to work with it.<p>The easiest way to act professional is learn how and what to comment in your scripting. What is apparent to you right now, won't be in a year when you need to back and chance something, or even better, when you start collaborating with other developers.<p>Being professional means that you invest in the time it takes to collaborate with others. Despite posting this on a site called "HackerNews", I'm SO not a hacker, and I would generally pitch a fit at hacker behavior. But then I've witnessed and personally experienced the pain and limitation of hacking, in lisp, pain, oh pain.<p>As to automated testing, don't worry about it until you're finding yourself testing more than coding. If you can't get a cheap hand, or friend or family member, or (chuckle) a customer to test the product, don't worry about getting a tool.