Lately, I've been looking on getting some skills to do some freelance work. I have done freelance article writing and that is okay. Like, I can make pretty decent cash with it, except people seem to keep driving down the actual price. This downward fall in prices results in horrible work, but that doesn't seem to matter for a premium writer, like myself.
I want to have an ondemand skill set that I can use to raise cash in a relatively short period of time. The reason for this is that I can always get extra cash, if the need ever arises. *You never know*
I thought I'd put my marketing skills into practice and start doing market research on freelance work.
Basically, I want to know what I should be learning to make the most money for the least amount of time.
I think PHP would obviously be a great skill. It seems to be the most popular, with a lot of jobs ( and the most competition). That's only just a thought though, without any actual research being done. Once I do my research I'll report back on what I've found out.
Day 1
Well, I did my research and it looks like PHP is probably my best bet. It is definitely the most in demand and I also found a lot of the other “skills” to learn out there seemed to need some basic understanding of PHP.
Now, I'm surprised that I actually know a lot more than I thought I would. You basically mix PHP code in with your HTML code(which I can do). The actual internal coding of PHP is surprisingly similar to other coding languages I know. I went to school for electrical engineering, so I had to learn Java 2, C and C++. It's practically the same. There are some subtle differences, but the main things are the same.
The only real difference is with mySQL databases. Basically in Java2, you just make an array (which is like a matrix) and fill it with data. Well, a mySQL database is the same thing, except it's a little different to maintain. The main difference is that you have to connect to the database server, get your information, than close the connection. Different yes, but still follows the same basic methods.
So I think PHP was definitely the best choice I made because it is popular and paying. Plus, I already have a very strong understanding of it already.
Day 2
I'm still learning on this day. Outside of the mySQL databases PHP is completely identical to Java2, C and C++. I was doing functions in a tutorial. Nothing hard at all. The sort of stuff where you save a name in a function and call the function.
I decided for fun to create a function that determines if a number is prime. More interesting…
function primeNum($num) {
for ($j = 2; $j < $num; $j++){
$value = $num % $j;
if ($value == 0 ) { $j = $num; echo "This is not a prime number.";}
elseif ($j == $num-1) {echo "Prime number";}
}
}
It's been a while since I had to do things like this. The best thing I learned in school about coding is that you have to turn a problem (finding prime numbers) into math (a number divisible by 1 and itself) and turn that into coding. It's always fun.
Anyway, I finished the day doing a lot of basic things and basic commands. Nothing that would excite you. This is the hard part about learning a new programming language. You have to learn all this stupid stuff before you can actually make something good.
Day 3
This wasn't a bad day. Got to do some more interesting things. One of the lessons was on SSI, which I surprisingly already know how to do because I had a site I did it for a long time ago. Basically, you just have a main file call other files to fill up the webpage. Basic command and that's it.
I also had some fun with cookies and putting them on my computer. Things are getting a little more interesting, but I have a feeling the real fun doesn't happen until I get to databases.
Day 4
This was a little more annoying of a day because I had some problems. I couldn't get error functions and filters to work for some reason. I think the tutorial I'm following might have very old commands or something that is outdated. From a logical point of view I understand it fully. Basically it's easy to understand. It's as simple as if (something goes wrong) do this.
I get to start into mySQL databases tomorrow, which sounds like a lot of fun.
Day 5
I was actually a little upset about the amount I got done yesterday with going through tutorials. I suppose it wasn't my fault because the code just wouldn't work from the tutorial, even though it should of been.
Anyway, I've been learning about mySQL databases today and I've been having some fun. Obviously when I'm having fun, I end up going through tutorials slower because I get sidetracked. I pick up the code, I understand it and than I want to build something more complex. It was like day 2 when I learned about functions, I just had the desire to build a prime number function.
Well, this time the tutorial wanted basic stuff like putting a name into the database and than pulling it out. Well, I had to make a commenting system, similar to a blogs. It's the coolest thing ever. It's important to note that it lacks specific things such as checks and balances, but in time that will come. It's more important right now to just build something and worry about the checks later.
I still have more to do today, but I think it's pretty cool to build something like this. I know it's not something amazing, but it shows that I'm getting nice and close to making pretty cool stuff.
UPDATE: I finished off the day and practically the entire tutorial. There is some stuff on XML and AJAX, but I didn't feel like it was fully necessary yet. I have a clear understanding of what I'm doing now, I just need to get into some sort of project and figure things out. The best way to learn is by figuring it out and I need a project to make.
Obviously I need something with a backend on it for administration.
Day 6
I had a pretty productive day with the little time I put into the PHP. I was able to build a backend admin section. It was a relatively simple process. When someone entered data for the site, I just added it to the database with an extra column set to zero. I made sure the main page seen a 1 before it would actually post it. For the admin section I created a login (which is a lot easier than I assumed) and basically it lists all the entries that are still assigned to 0. Basically, I hit button next to the message and they're approved ( set to 1 ) and the main page puts up the new information.
That's basically my time learning PHP. There was trouble doing this of course. The main issue was the admin section and approving comments.
There's a few things I'm going to have to change/learn (tomorrow). The content that is shown on the website is FIFO (First In First Out). That means basically that the oldest entry shows up at the top and the newer shows up at the bottom. Hence First In (oldest) is First Out (top of the page).
It's probably something very simple to reverse this. Normally I could do this, but you have to call an odd function for the database that runs a loop to dump the information out and I still don't fully understand it. I think there are a few ways to get around it. Like adding in another column that just increments (basically a unique number for each entry) and I can just go in that order.
The other thing that I need to do is the filters. As you recall from day 4, I had some trouble getting the filter commands to work. There are others out there, so I can just use them.
Day 7
Alright, I was able to do my filtering in a few easy steps. As I suspected the ordering was best done by creating an incrementing ID for each entry to the datebasa. I'm going to have to make sure that I pay attention to the mySQL syntax information because creating a new table every time is a pain, when I could just add a column to a table.
Also I did the filters too, which wasn't that big of a deal.
I decided that I'm going to jump into the XML and AJAX aspect of things because there has to be something important to this. I'm having a hard time figuring out exactly what it does. I got the definition of it, but I still don't really understand what it does. I can only suspect it is that click on some text or something on page and it executes php/database commands immediately. At least I hope it does because it's annoying doing it with forms. If curious what that translates into as an example, it's basically Wordpress, when you just click “Approve” on comments and poof they change the database.
Well, I will continue on with my Day 7.
NO!!! I wrote a massive post here and lost it.
I found out about AJAX and it's something that I'm definitely not touching.
Day 8
Okay, First things first. I learned how to pass information to a PHP file without having to use forms and a submit button. It was actually quite simple. It is ashame that the tutorial didn't teach this.
I was able to clean up my admin area with this.
I decided to take on a much more practical project today.
My site (that I'm just messing around with while learning php) takes in a few pieces of information from people. That information is held in the database until I approve it in the admin section. At this point it is posted on the main page for everyone to see. It's very simple.
What I wanted to do was for the site to create a static page for each entry with a nice clean URL. This involved some htaccess work and PHP mixed together. It took me a while to figure out this because I really had to learn htaccess to fully understand the way it was working (or why it wasn't working). It was a frustrating ordeal, but I've probably learned more this way.
I did get it working. One of the pieces of information I take in is a person's first name. So I made the clean URL out of their first name. If someone put their name in as “John”, the URL would be domain.com/John/. It's very simple stuff.
It's great that I got this working, but it isn't perfect. As long as they use a single word, it's fine. It they put in “John Smith” it wouldn't work. I haven't figured out how to process spaces.
Here is what I want to do tomorrow:
Day 9
Well, I got through this day very productively. Changing the “John Smith” to “john-smith” was a little different. I had it working. Basically there is a function in PHP to explode a string, which takes each word and puts it in an array (sort of like a list). Than there is an implode list that will take an array and put it into a string. With the implode function you can put hyphens in between words and you get what I want. Oh and there's a simple function that makes all letters lower case.
I was happy that I got it working, but than I realized something. What about punctuation? What about funny characters like !@#$%? You can't put these things in URL links. So basically I found another approach that does what I want and strips these characters out of the string.
I did the include function stuff. I love that feature and I've used it before to make a specific type of business site. I thought I'd have to play with this a little more, but 10 minutes of using it and I completely did everything I wanted to.
I had some extra time today and I actually attempted to get an aggregator going, but I couldn't get it to work. It was one of those situations where the code claimed to work, but it wasn't responding on my server. I'm not sure what was up with that, but I'm going to try to figure it out tomorrow.
Also I was looking at some tutorials online and these particular tutorials took advantage of the class feature. This isn't something that I was taught and I vaguely remember from my Java days. The classes looked to be structured differently and similarly. I think I might have to dig up a tutorial on classes and see why I should be doing it.
Maybe classes are used for simplicity sake for programming. You know, to keep things organized. One of the tutorials was making a simple blog. Normally I know how I'd handle this type of thing, but they had classes doing it. It has to be an organizational thing. My main index pages run while loops to display information and it is probably better coding to call functions in classes.
Anyway, I'll find some sort of tutorial on classes.
Day 10
Okay, I found a tutorial on classes and it's OOP (Object Oriented Programming). It's basically an organizational thing and avoiding repetitive code. I just read the words “inheritance”. I remember that and an evil feeling came over me lol.
Okay, I went through classes stuff and I applied it to what I was working on. I actually like it. It makes things a lot neater and organized. Cleans up the code a lot. It's rough seeing while loops and all that crazy stuff inside a mix of HTML. This way I don't have to see anything.
I didn't have to do any inheritance yet, but I'm sure that will come along soon enough.
Okay, I'm not going to do any aggragator. I just can't get this to work, even though my closest success was with the cURL command. Some of you probably were thinking why I have been obsessing over such a thing… well. During my research I came across a person that was willing to pay a few grand for an aggregator site that would get job postings. I don't think it is necessarily hard, it's just the coding appears to be different for different services, which is lame.
Anyway, I'm done for now trying to figure it out because I think it is actually impeding on the rest of my learning.
Weekend Edition (Day 11-12)
I decided to stop doing tutorials (unless needed) and just start trying to make things of beneficial value to people/myself. I decided to create a script that I'm going to sell. It's something I've always wanted to have, but didn't really know how to do it. I cloak all my links with a simple PHP redirect. I would just upload the PHP file to the server and that's it.
What I wanted was something different. I guess the best way to do this is by listing.
I would like to beta test this with a few people, so email me (questions@amxpert.com) and I'll let you have a copy when I finish it. Obviously this is the nuts and bolts of what I want to do.
More advanced features for the future would be:
That's all I can think of right now lol.
Okay, didn't take that much time after I wrote what is above. I finished the code and it's working properly. I just need to make sure that it works properly tomorrow. The links work properly. They're very fast. I set up editing of links. It counts today's clicks, yesterday's clicks and total clicks. You can reset each of those numbers individually or all together. You can easily delete links too.
I'm pretty impressed with it. The coding is pretty sloppy, as in not organized into classes, but it works. It needs some filtering put in to prevent any sort of odd characters being inputted. Normally this wouldn't be needed (definitely not needed for those that buy it). I just plan to have a demo for people to try out and someone might try something malicious is nature, so filters are needed. Someone that buys it will have a private password into the admin area.
*this is the next day (Sunday). I looked at the numbers and they're not correct. Well, obviously the total is correct, but there's an issue with today's and yesterday's numbers. I think it is a miner problem. I actually did the code wrong. It was just a miner thing, but messed up everything. It was supposed to update the entry in the database, but instead I created a new row on the database. I fixed that and I'm hoping that will clear up the code and keep it working perfectly.
Day 13
Didn't get much done this day for PHP. I was much more focused on my internet marketing duties. My code didn't work and I'm still not sure what is up with it.
I also didn't have any plans to follow, so I sort of got of track with my PHP precisely for that reason. I'm going to try to incorporate internet marketing work and PHP to kill two birds with one stone.
Day 14
Well, I got the cloaker to work properly. Well, it was always working right, I just had some problems with the stats. I fixed it and don't remember what I did. It was mundane because I didn't even think I worked on it. Stats look good now.
Anyway, I created an entire script and back end for one of my sites that has been under developed. It's sort of like Wordpress except it is customized the way I want it. Speeds up the time greatly for creating pages and I can easily customize it to meet any site easily. Even though this is all I've written for you, it took me about 2hrs to develop it all. Surprisingly making the code and the site is easy. It's the administrative area that takes forever because you have to make all these processes like deleting, editing, adding, uploading, etc.
Anyway, I'm thinking of using the script I made yesterday, altering it and making a specific site that I want to sneak out of “duplicate content”. It's a project that Blue Hat SEO talked about, except different. He wanted you to go out and buy a database, but in this case I'm going to fill it in myself, but each page will have specific sentences with specific words changed in and out. I want to see how something like this cranks in Google.
DAY 15
Well, I built a very custom script that is pretty cool. I probably never did a locations newbie project on my blog, which is regretable, but it's a really good thing to do. If you take a search term like “insomnia” or “cure insomia” it might be too competitive for you to ever get in it, but a lot of people will search “insomnia sacramento” or something with a city name. The funny thing about these terms is that the competition is typically horrible.
I made a script to handle this. I have the custom pages. I had some troubles with dumping information into arrays, but the structure is working now. Basically, site.com/State/City/ for each of the links. The site.com/State/ will pump out all the cities.
I'm going to get around duplicate content problems by randomly selecting a variation of 10 wording combinations. I'm always going to fill the database up with things other than the city and state, like parts of the city, counties, and sites of interest. This way I can make a page that will come off semi-unique.
The real value in this is that the database grows and I can use the database against any site I have. Let's say it takes me a month to do a 1000 cities, I can instantly create a 1000 pages in any other niche by using the database.
Sweet eh. That's what I've been working on.
Day 16
No PHP work done today. I've been busy with internet marketing duties.
Day 17
No PHP yet again. Not that I'm neglecting it. It's just that I pretty much understand it, so I've been more busy lately building links and putting to use the PHP stuff I've already created.
I wanted to make a note that I should build a site that creates itself. I know that sounds a little weird. What I want to do is put a search engine on it, for a specific niche, and when people search something I'll save it. I'll produce the search result on a page, along with similar searches and create a page.
Journal Ended
I get everything now and there's not much I need to learn. I suppose more advanced things, but I don't have any structured plan for that. It'll be learned as I go.