Criterion, if I may ask, what kind of sites do clients have you code? Do you find yourself making the same kind of sites over and over? Does it get boring?
NogDog can answer this too, if (he?) wants
The better I get at programming, the more I appreciate arrays. Handy dandy things they are.
I code all sort of things. Usually small utility style additions to existing sites these days since I don't have a ton of pick-up time outside the office. I've coded things ranging from your average blog style to music editing/streaming and embedded video players. I try to find the interesting things about each, and always try to learn at least one new thing with every project. That is how I keep things interesting for me.
For the last year now, since I've been working a full-time web dev job (mostly PHP/PostgreSQL), I've not been doing any free-lancing. When I was, it was generally along the lines of what Criterion mentioned, in that someone who just wants a vanilla web site can get any script kiddie to come up with something at half the price I was willing to work for; so I mostly worked on the more complex things they couldn't get done on the cheap.
Now that I spend my work day solving PHP-oriented problems (sometimes interesting, sometimes not so much), I have no urge/energy to do so during my free time (other than the poking around I do here and at PHPBuilder.com, of course ).
"Please give us a simple answer, so that we don't have to think, because if we think, we might find answers that don't fit the way we want the world to be."
~ Terry Pratchett in Nation
someone who just wants a vanilla web site can get any script kiddie to come up with something at half the price I was willing to work for; so I mostly worked on the more complex things they couldn't get done on the cheap.
Sounds about where my interest falls. I think I'd be much happier solving complicated problems than I would be as someone's script kiddie.
And hey NogDog, does your company provide PHP services to clients? Are you part of a team that builds web applications for said clients? Did you have to have a degree?
Last edited by evenstar7139; 08-17-2012 at 03:30 PM.
The better I get at programming, the more I appreciate arrays. Handy dandy things they are.
Sounds about where my interest falls. I think I'd be much happier solving complicated problems than I would be as someone's script kiddie.
And hey NogDog, does your company provide PHP services to clients? Are you part of a team that builds web applications for said clients? Did you have to have a degree?
Not really. What I work on provides a sort of service to a very specific business sector that allows them to incorporate our data into their web sites. (Some access it via web services we provide them and they can incorporate into their own GUI, while others use a GUI we provide via an IFrame.) That's one aspect of what our company does, the most public aspect (which I do not work on) is at www.vitals.com.
PS: I have a degree, but it's in music education.
"Please give us a simple answer, so that we don't have to think, because if we think, we might find answers that don't fit the way we want the world to be."
~ Terry Pratchett in Nation
I don't know much about portfolios but I was thinking for mine I'd include the best sites I'd made for other people and also put my dog game in there*. Sound good to you?
*No longer exists at this time but I was thinking about re-coding it and resurrecting it.
The better I get at programming, the more I appreciate arrays. Handy dandy things they are.
My "portfolio" was mainly that one of the guys working there posted a notice on a PHP forum about an opening, and when I replied, since he was familiar with my contributions there (where I'm a moderator), I got my foot in the door to get an interview. So, as usual, it's often at least as much a case of whom you know, not just what you know.
"Please give us a simple answer, so that we don't have to think, because if we think, we might find answers that don't fit the way we want the world to be."
~ Terry Pratchett in Nation
I just did it because I enjoy it, and figuring out solutions to other people's questions helps me learn more myself. That being said, networking is very important to finding job opportunities: you're much more likely to at least get an interview if your resume is submitted by someone already working at a company versus you contacting the company yourself. But once you get the interview, you still need to know your stuff.
"Please give us a simple answer, so that we don't have to think, because if we think, we might find answers that don't fit the way we want the world to be."
~ Terry Pratchett in Nation
I've recently learned a bit about XML files and I am wondering: What is the point of such files if you have a database? If you have just a little bit of data to store, is it faster to access it from an XML file?
When I had my dog game, probably the smallest table in the database was the one that housed the information about the different boards on the forum. There were about 15 rows, and the columns, as I recall, were boardID, boardName, boardDesc, boardIcon, and a couple others. The database was still the best place to house this information, right?
The better I get at programming, the more I appreciate arrays. Handy dandy things they are.
For my personal preferences, XML is about the last place I want to store data for internal use. It's fine for exchanging data between different systems, so that they share a common information language. However, for application data that I want easy access to and which can be searched and manipulated in many ways -- and quite efficiently -- it's hard to beat a database.
For things like system configuration info that rarely changes, I might go with a text file solution, but I'd probably go with a JSON file instead of XML, as it's just so darned simple to read/parse:
"Please give us a simple answer, so that we don't have to think, because if we think, we might find answers that don't fit the way we want the world to be."
~ Terry Pratchett in Nation
Did you do any of your freelance work over the internet? Where did you write the code, how did you deliver it, and how did you make sure it was working on the clients webhost/server/whatever? For awhile, I've been wondering what I would do in this situation. I think most people would not, and should not, just hand me the login information for their webhost/server.
The better I get at programming, the more I appreciate arrays. Handy dandy things they are.
If you're working on a site for a client that isn't going to be hosted on your own server, you get the environment they're on - duplicate it on your dev server and create it on that to ensure you don't run into any issues with deployment.
It isn't much of an issue anymore since most hosts run php 5.3.x and mysql 5.1 or 5.5 - and for the most part you won't really see any problems... It's once you start doing things with libraries that aren't standard in most php builds. Though 5.4 will break a lot of peoples sites.
In all honesty when you create something for a client there's no assumption you're responsible for it's security etc.. there's no such thing as hack proof.. obviously you should code to proper standards and what not to ensure the simple things don't bite you in the ass - but I've never heard of a freelancer getting sued.
You might find in larger companies and the deals that are made you'll find a due dilligence clause where the development company is responsible to provide reports, or do basic security testing and maintain to the best of their ability and have rapid response incase of a breach with a plan.. ie; secondary nodes /w daily backups ready for restore etc... but it's usually on the clients head - as security is a combination of coding, hosting, maintenance and user security
What do you do to prevent the following scenarios:
#1 You deliver the code to the client, they take it, and never pay you.
#2 You deliver the code to the client and they can't get it to work in their environment.
#3 You deliver the code to the client, they find things about it that they don't like, and demand changes.
#1. You don't deliver until you're paid, or you allow live usage on your server. Never commence work without deposit, never deliver without final payment
#2. You install it in their environment, otherwise they're responsible.
#3. Prior to commencing work you outline your "scope of work" which indicates what is included in your price, and anything beyond that is billed at your hourly rate... at the same time you should be held responsible for what was in the scope - if something doesn't work you should ensure it does after the fact with bug fixes, etc.
Bookmarks