sábado, diciembre 13, 2014

Coding Isn’t For Everyone: 7 Tech Jobs You Can Get Without It

 

[De: http://www.makeuseof.com/tag/coding-isnt-everyone-7-tech-jobs-can-get-without/]

Programming isn’t for everyone; it requires a very specific kind of quantitative, analytical thinking, and the learning process can be a tough one, even with some of the fun ways to learn to program. But don’t be discouraged if you want to be a part of the tech field: there are plenty of jobs for people who don’t know how to code!

These seven will give you an idea of what’s out there.

 

Designer

graphic designer   Coding Isnt For Everyone: 7 Tech Jobs You Can Get Without It

Coding can be more art than science, but graphic design is all about art. If you’re artistically inclined and you’d like to be involved in tech, being a designer is something you may want to consider. There are a number of areas that you could specialize in, or you could be a jack-of-all-designing-trades and do a bit of each. Designing products and packaging for companies that produce tangible goods, designing ads and brand imaging for ones that don’t, and designing web pages for both are all necessary.

Design is one of the areas on this list that you could be successful in without any coding knowledge at all. Although everyone can benefit from a few basic coding skills (especially inweb design), many designers have no programming knowledge whatsoever. If you’re interested in both design and coding, you’ll be happy to know that there’s a programming language for designers called Processing.

 

User Experience (UX) / User Interface (UI) Specialist

webpage wireframe ipad   Coding Isnt For Everyone: 7 Tech Jobs You Can Get Without It

There are a number of roles that fall under this category, but they all have to do with how users interact with a website, program, or app. This role can involve skills from design, psychology, human-computer interaction (HCI), and others. When websites, programs, and apps are being developed, UX/UI specialists sketch out wireframes and mockups, test models on users, and provide guidelines for designers to complete the user interface.

Survey results released earlier this year showed that UX experts come from a wide variety of backgrounds, and have degrees in all manner of things — many had relevant master’s degrees, such as in HCI. When asked which skills they found most useful, they said web design, writing, programming, psychology, design, and research methods.

 

Business Analyst

business analysis meeting tablet   Coding Isnt For Everyone: 7 Tech Jobs You Can Get Without It

From the outside, it might seem like the software development cycle is pretty simple: a customer (within or outside of a company) tells the developers what they need, the developers create it, and that’s that. But it’s a lot more complicated. The requirements that the customer has rarely translate to technical requirements smoothly — there’s a lot of interpretation and translation that has to take place before everyone understands each other.

This is where the business analyst comes in: they bridge the gap between customer and developers by gaining a solid understanding of what the customer wants the software or product to do and turning that into a series of tasks that the developers can deal with, one at a time. After going through all of these tasks, the developers will have created a product that satisfies the customer. (That’s the idea, anyway!)

 

Project / Program Manager

businessman manager drawing   Coding Isnt For Everyone: 7 Tech Jobs You Can Get Without It

Project and program managers often have related responsibilities to business analysts, but need to have a higher-level understanding of a company or project group. The best managers in the tech world learn to understand programmers and complement their needs rather than get into the nitty-gritty of coding. Project managers are in charge of specific projects, and often have to coordinate the priorities and actions of a range of parties, from developers and engineers to marketers and salespeople.

Program managers have a similar job, but generally work at an even higher level, managing a number of projects across an organization, ensuring that the projects help further the company’s goals. This could involve helping to determine the course of development across different products, as well as working closely with a number of project managers to oversee the progression of multiple projects.

System Administrator

sysadmins fixing server   Coding Isnt For Everyone: 7 Tech Jobs You Can Get Without It

Sysadmins, as they’re known, are often viewed as the handymen of an IT department. They take on everything from unboxing and setting up servers, to backing up files across the entire company, to creating firewalls to protect the network, to getting an email server back online when it goes down. Some companies have a number of sysadmins with distinct specialties, while others have a single sysadmin that takes on any project needed.

As you might imagine, having some programming experience — especially with scriptinglanguages, like Perl or Ruby — and having a solid understanding of how to run a wide range ofcommands through the terminal are very useful in this position. Successful sysadmins have a wide range of skills, including people skills for working with frustrated users who can’t check their email or submit their project reports.

Technical Writing

technical writer   Coding Isnt For Everyone: 7 Tech Jobs You Can Get Without It

If your talents lie in crafting concise, useful prose instead of in crafting apps or databases, technical writing may be a great career path for you. Programs, websites, scripts, and nearly every other type of product need extensive documentation. It can be instructions for users, requirements for developers, press releases, technical reports, specifications, or a wide range of other types of documents.

To be an effective technical writer, it’s beneficial to have an understanding of the sort of thing that you’re writing about, whether it’s an app or a set of mechanical engineering blueprints. Being concise, descriptive, and well-organized are also very useful writing skills to have in this field. Many technical writers get their start in the field that they work in, but others begin as freelancers or writers of other kinds.

Marketing / Sales

marketing sales concept   Coding Isnt For Everyone: 7 Tech Jobs You Can Get Without It

When it comes down to it, almost every tech company’s goal — like companies in any other field — is to make money. Which means they need to sell products. And that means that people who have the skills to market and sell those products are in high demand. What sets marketing and sales in the tech world apart from many other fields is that companies are often in tune with up-and-coming methods of marketing and advertising, and this can be appealing to many people who want to work in tech without programming.

For example, search engine optimization, search engine marketing, pay-per-click advertising, content marketing, web production, and social media marketing are all important fields that are relatively new within marketing and advertising that tech companies are likely to be hiring for. Some of them require more technical knowledge than others, but they all benefit from having a good understanding of the technology that the company is selling.

Get a Job!

Just because you don’t like coding doesn’t mean you can’t have a job in the tech sector and be involved in all the cool projects that entails — these seven areas, as well as many others, are open to you if you’re willing to work hard and prove yourself. As previously mentioned, having at least a basic understanding of the principles of programming can be very helpful, but for most of these jobs, you won’t need to know more than the basics.

Do you have a job in the tech sector? How much do you know about coding? What advice do you have for people trying to get into the field without programming knowledge? Share your thoughts below!

viernes, febrero 14, 2014

SQL Server Express: Hacer backups programados y con retención

[Tomado de http://www.jasoft.org/Blog/post/SQL-Server-Express-Hacer-backups-programados-y-con-retencion.aspx#comment]

by Jose M. Alarcon — Categorías: SQL Server

SQL Server Express es una excelente opción para trabajar con SQL Server en proyectos pequeños y medianos sin tener que pagar licencias. Es una versión gratuita pero totalmente funcional del gestor de base de datos relacionales de Microsoft. A cambio tiene ciertas limitaciones. Por ejemplo, no permite utilizar más de 1 GB de RAM por instancia para caché de datos en memoria y el tamaño de cada base de datos gestionada no puede superar los 10 GB (que es un tamaño considerable para aplicaciones normales). Carece de otras características de alta disponibilidad y replicación, pero ofrece toda la funcionalidad habitual (incluyendo integración de datos y reporting) y las herramientas de administración. Aquí podrás encontrar una comparativa de todas las ediciones de SQL Server.

Una de las cosas que no están disponibles con SQL Server es el Agente SQL. El agente nos permite programar tareas que se ejecutarán sobre las bases de datos cuando nosotros queramos. Esta carencia dificulta un poco, por ejemplo, la realización de copias de seguridad, especialmente si queremos mantener un periodo de retención concreto (por ejemplo, las copias de los últimos 7 días).

Por suerte esta carencia en concreto es muy fácil de solucionar, y en este artículo voy a explicar cómo lograrlo de manera sencilla.

Lo primero que tenemos que saber es que todas las ediciones de SQL Server incluyen una utilidad de línea de comandos que nos permite ejecutar instrucciones T-SQL arbitrarias contra cualquier base de datos. Se trata de SQLCMD.exe, generalmente ubicada en esta ruta:

"C:\Program Files\Microsoft SQL Server\110\Tools\Binn\SQLCMD.EXE"

en el caso de SQL Server 2012 Express.

Esta utilidad tiene muchos parámetros que nos permiten controlar su forma de trabajar. Dos que nos interesan especialmente son:

  • -S: nos permite especificar contra qué servidor/instancia se ejecutarán las sentencias T-SQL.
  • -i: permite especificar una ruta a un archivo (normalmente con extensión .sql) que contiene las instrucciones T-SQL que queremos ejecutar contra el servidor. Así podemos incluir scripts más complejos que una simple línea.

Sabiendo la existencia de esta herramienta, conseguir backups gracias a ella es muy sencillo.

1. Construir las instrucciones T-SQL base para hacer el backup

Lo primero es conseguir las comandos T-SQl para hacer un backup. Lo más sencillo es usar las herramientas integradas en el Microsoft SQL Server Management Studio (MSSMS). Ábrelo, busca la base de datos que te interesa copiar en el explorador de objetos y pulsa el botón derecho del ratón sobre ella. En el menú contextual elige la opción de "Tareas·backup…":

SQLServerExpressBackups1

Esto abre una nueva ventana desde la que podemos definir cómo queremos realizar el backup:

SQLServerExpressBackups2

Desde esta ventana elegimos la base de datos a copiar y la ruta en la que queremos guardar dicha copia de seguridad (normalmente le damos como extensión al archivo .bak, pero puede ser cualquiera o incluso no tener extensión).

Además si pulsamos en la página "Opciones" en el lateral podemos configurar algunas cosas más, como por ejemplo (muy recomendable) que se verifique el backup al terminar de hacerlo:

SQLServerExpressBackups3

OJO: la edición Express no soporta la compresión de los backups, así que si seleccionamos esta opción en la lista desplegable de la parte inferior de la figura anterior, se producirá un error al realizar el backup.

Una vez que tengamos seleccionadas todas las opciones que necesitemos, podemos obtener el código necesario para realizar el backup usando el botón "Script" de la parte superior de la ventana anterior. Por defecto nos copiará el código generado a una ventana del MSSMS, así:

SQLServerExpressBackups4

Con esto obtendríamos una base de datos que se sobrescribiría en cada nueva copia, Lo interesante de las copias de seguridad es tener copias con una retención de varios días, para poder comprobar datos anteriores o restaurar los datos a un estado anterior.

2. Retocar el script para darle una semana de retención

Supongamos que queremos hacer una copia de seguridad diaria y que queremos mantener las copias durante 7 días, de modo que podamos recuperar los datos desde cualquier copia de seguridad de la última semana. Para ello vamos a retocar el script anterior de modo que cada día le cambie el nombre al archivo de copia de seguridad. Para ello vamos a declarar una variable que servirá para guardar la ruta y el nombre del archivo de copia de seguridad, cambiándolo en función, en este caso, del día de la semana en el que nos encontremos. En este caso sería así:

DECLARE @dest nvarchar(255)
SET @dest = 'C:\BackupsBBDD\SELF_' + CAST(DATEPART(weekday, GETDATE()) AS nvarchar(1)) + '.bak'

La función DATEPART con el valor weekday para el primer parámetro nos devuelve un número para cada día de la semana, empezando por el domingo (un 1)  hasta el sábado (un 7). Como le pasamos la fecha actual (GETDATE) como segundo parámetro lo que obtendremos en la variable @dest es cada día un nombre diferente para la base de datos, añadiéndole el número de día de la semana para obtener nombres estilo: SELF_1.bak, SELF_2.bak, SELF_3.bak y así sucesivamente.

En el script generado por el MSSMS bastará ahora por sustituir la ruta por el nombre de esta variable y ya lo tendremos listo (ojo: hay que susituirlo en dos sitios: en el backup y en la verificación del backup en la parte inferior).

Dado que en caso de que un archivo exista de backup se sobrescribirá, en la práctica con este script lo que conseguimos es que siempre haya 7 copias como máximo en el histórico.

3. Crear un bat para realizar el backup

Ahora que ya tenemos el código necesario para crear las copias de seguridad lo que debemos hacer es crear un archivo .bat que nos permita ejecutar este código T-SQL cuando queramos. Para ello usaremos SQLCMD.EXE, escribiendo esta instrucción:


"C:\Program Files\Microsoft SQL Server\110\Tools\Binn\SQLCMD.EXE" -S SERVIDOR\INSTANCIA -i "C:\BackupsBBDD\BackupSELF.sql" >> log.txt


Debemos sustituir SERVIDOR\INSTANCIA por el nombre de nuestro servidor y la instancia de SQL Server sobre la que queremos trabajar. En el parámetro -i debemos indicar la ruta al archivo .sql con las instrucciones para la copia de seguridad que acabamos de crear.

La última instrucción ">> log.txt" nos permite guardar el resultado de la ejecución en un archivo de texto que podemos consultar para ver cuándo se ha realizado cada copia, cuánto ha tardado y cualquier otro mensaje que se derive de la ejecución del script. E spor eso que me gusta colocarle al principio del script una instrucción más como esta:

PRINT CAST(GETDATE() AS nvarchar) + ' - COPIA DE SEGURIDAD INICIADA AL ARCHIVO: ' + @dest

De este modo aparecerá en el archivo Log.txt un mensaje al principio de cada copia de seguridad indicando la fecha de creación y el nombre del archivo. Podemos incluir del mismo modo cualquier otra información que consideremos relevante.

4. Programar la tarea

Ahora que ya tenemos un script para hacer la copia de seguridad, y además hemos creado un .bat para ejecutarlo, lo único que nos falta es crear una tarea programada para poder lanzarla con la periodicidad que nos convenga (en principio cada día).

Para ello abrimos el administrador de tareas programadas del sistema y creamos una nueva tarea. Lo único que tendremos que hacer es indicar que queremos ejecutar el archivo .bat del paso anterior así como a qué hora del día lo vamos a hacer:

SQLServerExpressBackups5

Con esto habremos conseguido que todos los días a las 2:00 de la mañana se realice una copia de seguridad de la base de datos, con una retención de 7 días:

SQLServerExpressBackups6

Cada uno de esos archivos se corresponde con la copia de seguridad del domingo (1), lunes (2), martes 83), etc…

Si quisiésemos un periodo de retención de un mes, por ejemplo, sería tan fácil como cambiar el parámetro de DATEPART por "day" de modo que se pusiera el número de día del mes. Podemos jugar con los distintos valores del primer parámetro de DATEPART para conseguir otros periodos, como por ejemplo, si hacemos más de una copia al día, añadirle la hora de modo que tengamos más de un archivo diario.

¡Espero que te resulte útil!


Si quieres aprender a programar bien SQL Server, no te pierdas estos dos cursos de campusMVP (en inglés):


del MVP italiano Alessandro Alpi. Aprenderás a sacarle todo el partido a SQL Server ya optimizar tus aplicaciones.